Skip to content

Instantly share code, notes, and snippets.

@ram-nad
Created March 26, 2020 17:45
Show Gist options
  • Save ram-nad/20ccc3c99464d25d28edf34a67a0621c to your computer and use it in GitHub Desktop.
Save ram-nad/20ccc3c99464d25d28edf34a67a0621c to your computer and use it in GitHub Desktop.
proc quicksort(low: int, high: int, arr: [low..high] int){
if(low >= high){
return;
}
var mid = arr(low + ((high - low) / 2));
var i = low - 1;
var j = high + 1;
while(true){
do{
i += 1;
}while(i <= high && arr(i) < mid);
do{
j -= 1;
}while(j >= low && arr(j) > mid);
if(i > j){
break;
}else{
arr(i) <=> arr(j);
}
}
quicksort(low, j, arr(low..j));
quicksort(i, high, arr(i..high));
}
var a = [1, 9, 5, -3, 6, -1, 7];
quicksort(1, 7, a);
writeln(a);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment