快速排序與快速選擇 Java

2021-07-16 21:28:01 字數 962 閱讀 9089

快速選擇可以在nlogn的時間複雜度下得到一組無序數字的第k大,原理基於快速排序,每次以某個數字為中點分成的左右兩段,左邊都小於等於分割數,而右邊都大於等於分割數,快速選擇的求解速度要比全部排序後再取第k大快

/**

* created by tcgogogo on 16/8/18.

*/class solution

system.out.println();

}public void swap(int nums, int i, int j)

int tmp = nums[i];

nums[i] = nums[j];

nums[j] = tmp;

}public void quicksort(int nums, int left, int right)

int i = left, j = right;

while (i < j)

while (i < j && nums[i] <= nums[left])

if(i < j)

}swap(nums, left, i);

quicksort(nums, left, i - 1);

quicksort(nums, i + 1, right);

}public int quickselect(int nums, int left, int right, int k)

int i = left, j = right;

while (i < j)

while (i < j && nums[i] <= nums[left])

swap(nums, i, j);

}swap(nums, left, i);

if(k == i - left + 1)

else if(k < i - left + 1)

else

}}

快速排序,選擇排序

選擇排序 123 4567 891011 1213 1415 1617 1819 2021 2223 int selectionsort int argv int size 選擇排序 if minindex i return time 來自code的 片 selectionsort.cpp 快速排序...

選擇排序,快速排序

二 快速排序 學習各種排序演算法,後續會繼續補充。例 對資料從小到大進行排序 先在列表中檢查每個元素找到最小的 需要的時間o n 執行n次這樣的操作 需要的總時間o n n n nn n 即o n 2n 2 n2 def findsmallest arr smallest arr 0 smalles...

java氣泡排序與快速排序

1.氣泡排序 public class bubblesort return count public int sort2 int array return count public static void main string args system.out.println bs.sort1 ar...