2017.10.30 學習筆記
阿新 • • 發佈:2018-12-30
主要學習排序
Quicksort 快排,採用邊搜尋邊排序的方法,首先設定i=0,j=陣列大小-1
隨後利用遞迴的方法來繼續流程
程式碼:來自百度百科
void Qsort(int a[], int low, int high) { if(low >= high) { return; } int first = low; int last = high; int key = a[first];/*用字表的第一個記錄作為樞軸*/ while(first < last) { while(first < last && a[last] >= key) { --last; } a[first] = a[last];/*將比第一個小的移到低端*/ while(first < last && a[first] <= key) { ++first; } a[last] = a[first]; /*將比第一個大的移到高階*/ } a[first] = key;/*樞軸記錄到位*/ Qsort(a, low, first-1); Qsort(a, first+1, high); }
猜測應該是由於 first的位置不固定,導致遞迴的次數不固定,導致時間複雜度不固定
除此以外學習了 Stable_sort 從後到前字母進行Stable_sort便可以完成字典序的排序,而Sort具有隨機性有可能會使得原有的順序發生變化,所以字典序不推薦使用sort進行排序。
昨天體測,現在全身散架,這一年身體素質差了不少,胖了十斤.