插入排序的最好的情況是O(n),最壞的情況O(n^2),因此是穩定的
冒泡排序最好的情況是O(n),最壞的情況O(n^2)因此是穩定的
//插入排序
void insert_sort(int* arr, int n) {
int temp = -1;
for (int i=1;i<n;++i){
temp = arr[i];
int j = i - 1;
//從後往前搬動數據
for (;j>=0;--j){
if (arr[j] >=temp){
break;
}
arr[j+1] = arr[j];
}
//當前的後一個位置,放入數據,空位置
arr[j + 1] = temp;
}
}
冒泡排序
void bubble_sort(int array[], int n)
{
bool flag = false;
for (int i = 1; i < n; i++) {
flag = false;
for (int j = 0; j < n-i; j++) {
if (array[j] < array[j + 1]) {
flag = true;
array[j] ^= array[j + 1];
array[j + 1] ^= array[j];
array[j] ^= array[j + 1];
}
}
if (!flag) {
break;
}
}
}