穩定性: 穩定
最壞時間複雜度o(n^2)
最好時間複雜度o(n)
平均時間複雜度o(n^2)
void bubble_sort(int *a, int n)
}if(!flag)
break;
}}
穩定性: 穩定
平均時間複雜度o(n^2)
最壞時間複雜度o(n^2)
最好時間複雜度o(n)
void insert_sort(int *a, int n)
a[j + 1] = key;
}}
穩定性: 不穩定
平均時間複雜度o(n^2)
最壞時間複雜度o(n^2)
最好時間複雜度o(n^2)
void select_sort(int *a, int n)
}if(index != i)
_swap(a[index], a[i]);
}}
穩定性: 不穩定
最差時間複雜度o(n^2)
最好時間複雜度o(nlogn)
平均時間複雜度o(nlogn)
void quick_sort(int *a, int l, int r)
a[i] = x;
quick_sort(a, l, i - 1);
quick_sort(a, i + 1, r);
}}
穩定性: 不穩定
平均時間複雜度o(nlogn)
void shell_sort(int *a, int n)
a[k + grap] = temp;}}
}}
穩定性: 穩定
平均時間複雜度o(nlogn)
最壞時間複雜度o(nlogn)
最好時間複雜度o(nlogn)
空間複雜度o(n)
void _merge(int *a, int
left, int
mid, int
right)
while(i <= mid)
while(j <= right)
for(k = 0; k < len; ++k)
a[k + left] = temp[k];
delete temp;
}void merge_sort(int *a, int
left, int
right)
}
穩定性: 不穩定
平均時間複雜度o(nlogn)
最壞時間複雜度o(nlogn)
最好時間複雜度o(nlogn)
void adjust_heap(int *a, int holeindex, int
len)
else
break;
}a[holeindex] = temp;
}void build_heap(int *a, int
len)
void heap_sort(int *a, int
len)
}
幾種排序演算法的實現與比較
排序演算法比較 利用隨機函式產生n個隨機整數,利用直接插入排序 折半插入排序,起泡排序 快速排序 選擇排序 堆排序,基數排序七種排序方法進行排序 結果為由小到大的順序 並比較次數和交換次數。這裡是源 include using namespace std include include includ...
幾種排序演算法比較
資料結構 10 排序十 四 排序 sort thinking in algorithm 12.詳解十一種排序演算法 排序法平均時間 最差情形 穩定度額外空間 備註冒泡 o n2 o n2 穩定o 1 n小時較好 交換o n2 o n2 不穩定o 1 n小時較好 選擇o n2 o n2 不穩定o 1 ...
幾種排序演算法的比較
1.分類 非線性時間比較類排序 通過比較來決定元素間的相對位置關係,由於其時間複雜度不能突破o nlogn 因此稱為非線性時間比較類排序。線性時間比較類排序 不通過比較來決定元素間的相對位置關係,它可以突破基於比較排序的時間下界,以線性時間執行,因此稱為線性時間比較類排序。2.複雜度 3.演算法相關...