直接插入排序
/* 直接插入排序 */快速排序void insertsort(int a, int n)
} if (flag==false)}}
參考之前文章:快速排序
// 一趟快速排序,劃分參考之前的文章:二路歸併排序int partition(int a,int low,int high)
else
}a[start]=a[0]; // 被篩選結點的值放入最終位置
}/* 堆排序 */
void heapsort(int a, int n)
for (int j=n;j>1;j--) // 2> n-1趟的交換和建堆過程
}
// 一趟歸併排序演算法int b[n];
void merge(int a,int left,int mid,int right)
while (i<=mid) a[k++]=b[i++]; // 若第乙個表為檢測完,複製
while (j<=right) a[k++]=b[j++]; // 若第二個表為檢測完,複製
// 最後兩個while迴圈只有乙個會執行
}/* 二路歸併排序 */
內部排序彙總
最近在複習各種內部排序演算法,照著書上的偽 敲了一遍,排序演算法實現本來不難,主要理解每種演算法的思路和複雜度以及穩定性。源 include include define n 150 include void insertsort int a a j 1 a 0 void shellsort int...
內部排序演算法彙總
3.快速排序 4.選擇排序 5.歸併排序o nlogn 6.桶排序 7.各個排序演算法比較 大部分演算法中,待排記錄的資料型別設為 define maxsize 20 乙個用作示例的小順序表的最大長度 typedef int keytype 定義關鍵字型別為整數型別 typedef struct r...
九大內部排序彙總
插入排序 名稱 穩定性時間複雜度 空間複雜度 直接插入排序 穩定o n2 o 1 折半插入排序 穩定o n2 o 1 希爾排序 不穩定o n2 特定n n1.3 o 1 交換排序 名稱 穩定性時間複雜度 空間複雜度 氣泡排序 穩定o n2 o 1 快速排序 不穩定o n2 o n 平均o nlog2...