繼續快速排序,簡單選擇排序和堆排序
一,快速排序
演算法思想
a,先從乙個數列中取出乙個數作為基數
b,分割槽過程,將比這個數大的放在右邊,小於等於這個數的放到左邊
c,再對左右區間重複第二步,直到各個區間只剩乙個數
2,**
void quicksort(ints,int l,int r)
if(i
1,演算法思想
選擇類排序的主要動作是「選擇」,簡單選擇排序採用最簡單的選擇方式,從頭至尾順序掃瞄排列,找出最小的乙個記錄,和第乙個記錄交換,
接著從剩下的記錄中繼續這種選擇和交換,最終使序列有序。
void selectsort(int r,int n)
temp=r[i];
r[i]=r[k];
r[k]=temp;
}} }
三,堆排序
演算法思想還是上杰寶吧...
**如下咯:
/*調整為最小堆*/
void sift(int r,int low,int high)
} }
資料結構之常見的排序演算法1
1,直接插入排序 1 演算法思想 每趟將乙個待排序的元素作為關鍵字,按照起關鍵字值的大小插入到已經排好的部分序列的適當位置,直到插入完成。比如說遞增順序排列 初始序列 48 36,68,72,12,02 第1趟 36,48 68,72,12,02 第2趟 36,48,68 72,12,02 第3趟 ...
資料結構 幾種常見的排序演算法
下圖是我掌握的一些排序演算法,我將他們做了分類,當然,排序演算法遠不止這些。a 演算法思想 假設第乙個數是有序的,那麼把後面的數拿出來插入到這個有序數的合適位置,假設是公升序 比第乙個數小則向後移動第乙個數,將數插入到第乙個數的前面 插入後有序區間擴大為兩個,依次向後,不斷拿出新的數插入到有序區間,...
資料結構之排序演算法
1.插入排序 直接插入排序 include void insertsort int unsort int length unsort j temp int main void insertsort num,7 int i 0 for i i 7 i return 0 折半插入排序 include v...