其實按照我的複習進度,我現在應該是還在複習計算機網路,但是沒忍住手癢去刷了刷leetcode,我做的題是88. 合併兩個有序陣列
,是個簡單題,想要練習練習快排的可以找這題熟悉熟悉。
void quick_sort(vector& nums1, int left, int right) //快排
int i = left, j = right;
int temp = nums1[left];
while (i= temp) //從右到左找小於temp的數,此時左邊有坑
if (i < j)
while (i < j&&nums1[i] <= temp) //從左到右找大於temp的數,此時右邊有坑
if (i < j)
}nums1[i] = temp; //找到了元素temp的位置
quick_sort(nums1,left,i-1);
quick_sort(nums1, i+1, right);
}
每次取第一位元素為第乙個坑,此時就需要從後面開始往前遍歷了,把後面比選定元素小的元素挪到前面的坑里去,此時後面這個被往前挪動的元素又成了空的坑,此時就可以從前面開始往後遍歷了,把前面比選定元素大的元素挪到後面的坑里去,同理,前面又多了個坑,如此往復,直到左右指標相碰,這個地方就是選定元素該去的地方,左邊的元素都比它小,右邊的元素都比它大,它的位置不再變化,然後開始下乙個迭代,直到劃分的區間只有乙個元素位置,此時排序完成。 資料結構之快排
快速排序 1,首先選定陣列的乙個座標 2,將次座標所對應的值與陣列中其他的值進行比較,比他大的放在他的右邊,比他小的放在他的左邊 3,將2所分得的兩個區分別進行第2步所做的操作 public class quicksort if leftpvoid return left public static...
資料結構之快排(python實現)
受益於一位前輩的快排部落格,感謝感恩開源,記錄一下用python實現的快排 主要思想 分而治之 以基準數為分界線,左邊比其小,右邊比其大 1.i l,j r,取出基準數s i 形成第乙個坑 2.j 由後向前找比基準數小的數,找到後填到前乙個坑s i 中 3.i 由前向後找比基準數大的數,找到後填到第...
資料結構之快排(山理工3398)
這個題應用了快排。雖然題目只要求一遍,但是回了一遍就會了全部的。先上一遍的。includevoid swap long long x,long long y int main int n long long a 100005 while scanf d n for int i 0 i temp y ...