Advertisement
kevkul

quicksort.ccash

Jul 30th, 2020
1,304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.11 KB | None | 0 0
  1. func partition(mut []int32 arr, const uint32 low, const uint32 high) uint32 {
  2.     const int32 pivot := arr[high];
  3.     mut uint32 i := low - uint32(1);
  4.    
  5.     for mut uint32 j := low; j <= high - uint32(1); j++ {
  6.         if arr[j] < pivot {
  7.             i++;
  8.             arr[i] :=: arr[j];
  9.         }
  10.     }
  11.    
  12.     arr[i + uint32(1)] :=: arr[high];
  13.     return i + uint32(1);
  14. }
  15.  
  16. func quicksort(mut []int32 arr, const uint32 low, const uint32 high) {
  17.     if low < high {
  18.         const uint32 pivot := partition(arr, low, high);
  19.         quicksort(arr, low, pivot - uint32(1));
  20.         quicksort(arr, pivot + uint32(1), high);
  21.     }
  22. }
  23.  
  24. func printArray(const []int32 arr) {
  25.     printf("[");
  26.     // for const uint32 i in 0..arr.length { // Ranges are to be implemented...
  27.     for mut uint32 i := uint32(0); i < arr.length; i++ {
  28.         printf("%d, ", arr[i]);
  29.     }
  30.     printf("]\n");
  31. }
  32.  
  33. func main() {
  34.     mut []int32 arr := [10, 7, 8, 9, 1, 5];
  35.     printf("Original array: ");
  36.     printArray(arr);
  37.    
  38.     quicksort(arr, uint32(0), arr.length);
  39.     printf("Sorted array: ");
  40.     printArray(arr);
  41. }
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement