選擇乙個基準元素,通常選第乙個或最後乙個,通過一趟掃瞄,將待排序的元素分成兩部分,一部分比基準元素小,一部分大於等於基準元素,此時基準元素在其排好的正確位置,然後再用同樣的方式遞迴劃分後的兩部分。
時間複雜度:o (nlogn)
list[low] = list[high]; //比中軸小的記錄移到低端
while (low < high && list[low] <= tmp)
list[high] = list[low]; //比中軸大的記錄移到高階
}list[low] = tmp; //中軸記錄到尾
return low; //返回中軸的位置
}private static void quicksortrecursion(int list, int low, int high)
}public static void main(string args) ;
quicksort(array);}}
排序 快速排序(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的兩邊分界點,右進行一次上一次的操...