插入排序和冒泡排序

插入排序的最好的情況是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;
        }
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章