快速選擇可以在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...