File: demo_heapsort2

package info (click to toggle)
runawk 1.6.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 712 kB
  • sloc: awk: 1,127; ansic: 736; sh: 420; makefile: 103
file content (33 lines) | stat: -rwxr-xr-x 556 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/env runawk

#use "heapsort.awk"
#use "alt_assert.awk"

# This is a regression test for heapsort.awk module

BEGIN {
	srand()

	cnt = 400

	start = 20
	end   = start + cnt

	sum = 0
	for (i=start; i <= end; ++i){
		arr [i] = int (rand() * 50)
		sum += arr [i]
	}

	heapsort(arr, remap, start, end)

	end_sum = 0
	for (i=start; i <= end; ++i){
#		printf "arr [%s]=%s\n", i, arr [remap [i]]
		assert(i == start || arr [remap [i-1]] <= arr [remap [i]], "failed!")
		end_sum += arr [remap [i]]
	}
	assert(sum == end_sum, "sum != end_sum")

	exit 0
}