File tree Expand file tree Collapse file tree 1 file changed +72
-0
lines changed
Expand file tree Collapse file tree 1 file changed +72
-0
lines changed Original file line number Diff line number Diff line change 1+ def main
2+ begin
3+ def partition is int: low high as int, arr as int []
4+ begin
5+ var pivot i temp j is int
6+ pivot := arr[high]
7+ i := low - 1
8+ j := low
9+
10+ loop:
11+ begin
12+ if j <= high-1: begin break end
13+ if arr[j] < pivot:
14+ begin
15+ i := i + 1
16+ temp := arr[i]
17+ arr[i] := arr[j]
18+ arr[j] := temp
19+ end
20+ j := j + 1
21+ end
22+ temp := arr[i+1]
23+ arr[i+1] := arr[high]
24+ arr[high] := temp
25+ return: i+1
26+ end
27+
28+ def quicksort: low high as int, arr as int []
29+ begin
30+ if low <= high:
31+ begin
32+ var pivot is int
33+ pivot := partition(low, high, arr)
34+ # recursion
35+ quicksort: low, pivot-1, arr
36+ quicksort: pivot+1, high, arr
37+ end
38+ end
39+
40+ # Read the length of array from input
41+ var N is int
42+ N := readInteger()
43+ # Define the array of given length
44+ var nums is int [N]
45+ var k is int
46+ k := 0
47+
48+ loop:
49+ begin
50+ if k < N: begin break end
51+ nums[k] := readInteger()
52+ k := k + 1
53+ end
54+
55+ quicksort: 0, N, nums
56+
57+ k := 0
58+ loop:
59+ begin
60+ if i < n:
61+ begin
62+ if k > 0: begin writeString: ”, ” end
63+ writeInteger: x[k]
64+ k := k+1
65+ end
66+ else:
67+ begin
68+ break
69+ end
70+ end
71+ writeString: ”\n”
72+ end
You can’t perform that action at this time.
0 commit comments