1 基礎排序

基礎排序

  • 交換函數

    void swap(int arr[], int i, int j) {
        int tmp = arr[i];
        arr[i] = arr[j];
        arr[j] = tmp;
    }
    
  • 冒泡排序

    void bubble_sort(int arr[], int n) {
        for (int i = 0; i < n; i++) {
            for (int j = n-1; j >= i; j--) {
                if (arr[j-1] > arr[j]) {
                    swap(arr, j-1, j);
                }
            }
        }
    }
    
  • 選擇排序

    void selection_sort(int arr[], int n) {
        for (int i = 0; i < n-1; i++) {
            int min_val = arr[i], min_index = i;
            for (int j = i+1; j < n; j++) {
                if (arr[j] < min_val) {
                    min_val = arr[j];
                    min_index = j;
                }
            }
            swap(arr, i, min_index);
        }
    }
    
  • 插入排序

    void insertion_sort(int arr[], int n) {
        for (int i = 1; i < n; i++) {
            for (int j = i-1; j >= 0 && arr[j+1] < arr[j]; j--) {
                swap(arr, j, j+1);
            }
        }
    }
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章