Advertisement
SergeyPGUTI

QuickSort

Oct 5th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.58 KB | None | 0 0
  1. public class QuickSort {
  2.  
  3.     public static void sort(int array[],int left,int right) {
  4.         int mid = array[left + (right - left) / 2]; //выбор опорного элемента
  5.         int i=left,j=right;
  6.  
  7.         //разделение массива по центральному элементу
  8.         while (i <= j) {
  9.             while (array[i] < mid) i++; // пропускаем значения которые не нужно перемещать (от левой части до опорного)
  10.             while (array[j] > mid) j--;  // пропускаем значения которые не нужно перемещать (от правой части до опорного)
  11.             if (i <= j) {
  12.                 int temp=array[i]; //меняем значения местами
  13.                 array[i]=array[j];
  14.                 array[j]=temp;
  15.                 i++;
  16.                 j--;
  17.             }
  18.         }
  19.         //
  20.  
  21.         //Если в правой части больше 1 элемента , выполняем ее сортировку
  22.         if (i < right)
  23.             sort(array,i, right);
  24.         //Если в левой части больше 1 элемента , выполняем ее сортиров
  25.         if (left < j)
  26.             sort(array,left, j);
  27.     }
  28.  
  29.     public static void main(String Args[]){
  30.         int [] array={1,53,4,3,41,56,45,68,15,46,64,5,6,8,51,33,54};
  31.         QuickSort.sort(array,0, array.length-1);
  32.         for (int i=0;i<array.length;i++){
  33.             System.out.print(array[i]+" ");
  34.         }
  35.     }
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement