快速排序Java實現

2021-09-21 12:53:32 字數 790 閱讀 4638

public class main

//核心方法,左右掃瞄,填坑

int key = array[low]; //把第乙個設定為基準, 挖坑

//一般不對傳入引數直接修改,賦值給臨時變數進行修改

int i = low;

int j = high;

while (i < j)

array[i] = array[j]; //填坑

while ((array[i] <= key) && (i < j))

array[j] = array[i]; //填坑

}array[i] = key; //將基準填坑

return i;

}public static void quicksort(int array, int low, int high)

}public static void main(string args)

;//陣列下標

int low = 0;

int high = a.length-1;

system.out.println("before quicksort:");

for(int i = 0; i < a.length; i++)

quicksort(a, low, high);

system.out.println("after quicksort:");

for(int i = 0; i < a.length; i++)

}

排序 快速排序(java實現)

快速排序是一種非常高效的排序演算法,它採用了 分而治之 的思想,把大的拆分成小的,小的再拆分為更小的。其原理如下 對於給定一組記錄,通過一趟排序後,將原序列分為兩部分,其中前一部分的所有記錄都比後一部分的所有記錄小,然後再依次對前後兩部分的記錄進行快速排序,遞迴該過程,直到序列中所有的記錄均為有序為...

Java實現快速排序

package com.handy.ds public class quicksort for int i 0 i a.length i system.out.print a i system.out.println quicksort qs new quicksort qs.quitsort a,...

java實現快速排序

快速排序是平均速度最快的排序演算法,他的平均時間複雜度 n log n 快速排序採用分治法來進行排序,首先先給出乙個陣列,在一開始隨意選擇乙個數pivot,已pivot作為這個陣列的分界點,把大於pivot的數放在右邊,小於pivot的數放在左邊,然後在已pivot的兩邊分界點,右進行一次上一次的操...