C語言面試題分類->排序算法
阿新 • • 發佈:2018-04-03
OS sort 試題 時間復雜度 ups popup popu 使用 body
1.選擇排序。
每次將最小的數,與剩余數做比較。找到更小的,做交換。
時間復雜度:O(n2)
空間復雜度:O(1)
優缺點:耗時但內存空間使用小。
void selectSort(int *p,int len) { int i, j,tmp; for(i = 0; i < len; i++) { for(j = i+1; j < len; j++) { if(p[i] > p[j]) { tmp = p[i]; p[i]= p[j]; p[j] = tmp; } } } }
2。冒泡排序
一輪比較兩個相鄰的數,獲得一個最大的數仍在後邊。
時間復雜度:O(n2)
空間復雜度:O(1)
優點:穩定。
void popupSort1(int *p,int len)
{
int i, j, tmp;
for(i = 0; i < len ; i++)
{
for(j = i; j < len -1; j++)
{
if(p[j] > p[j+1])
{
tmp = p[j];
p[j] = p[j+1];
p[j+1] = tmp;
}
}
}
}
3。插入排序
4。快速排序
5。堆排序
6。歸並排序
C語言面試題分類->排序算法