Computer >> Máy Tính >  >> Lập trình >> Java

Chương trình Java để sắp xếp nhanh lặp đi lặp lại

Sau đây là chương trình Java để sắp xếp nhanh lặp lại -

Ví dụ

public class Demo{
   void swap_vals(int arr[], int i, int j){
      int temp = arr[i];
      arr[i] = arr[j];
      arr[j] = temp;
   }
   int partition(int arr[], int l, int h){
      int x = arr[h];
      int i = (l - 1);
      for (int j = l; j <= h - 1; j++){
         if (arr[j] <= x){
            i++;
            swap_vals(arr, i, j);
         }
      }
      swap_vals(arr, i + 1, h);
      return (i + 1);
   }
   void quick_sort(int arr[], int l, int h){
      int my_list[] = new int[h - l + 1];
      int top = -1;
      my_list[++top] = l;
      my_list[++top] = h;
      while (top >= 0){
         h = my_list[top--];
         l = my_list[top--];
         int p = partition(arr, l, h);
         if (p - 1 > l){
            my_list[++top] = l;
            my_list[++top] = p - 1;
         }  
         if (p + 1 < h){
            my_list[++top] = p + 1;
            my_list[++top] = h;
         }
      }
   }
   public static void main(String args[]){
      Demo my_ob = new Demo();
      int my_arr[] = { 34, 76, 41, 32, 11, 0 , 91, 102, -11};
      my_ob.quick_sort(my_arr, 0, my_arr.length - 1);
      int i;
      System.out.println("After iteratively performing quick sort, the array is ");
      for (i = 0; i < my_arr.length; ++i)
      System.out.print(my_arr[i] + " ");
   }
}

Đầu ra

After iteratively performing quick sort, the array is
-11 0 11 32 34 41 76 91 102

Một lớp có tên Demo chứa 3 hàm, 'swap_vals' được sử dụng để hoán đổi các giá trị bằng cách sử dụng biến tạm thời, hàm 'phân vùng' chia mảng thành hai nửa dựa trên giá trị xoay vòng và hàm 'quick_sort' sử dụng xoay giá trị và dựa trên giá trị này, sắp xếp các giá trị trong mảng.

Trong hàm main, một thể hiện của lớp Demo được tạo cùng với một mảng. Hàm 'quick_sort' được gọi trên mảng này và đầu ra được hiển thị trên bảng điều khiển.