91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c++數組排序的方法是什么

c++
小億
83
2024-02-05 17:21:10
欄目: 編程語言

C++中有多種排序數組的方法,以下是其中的一些常見方法:

  1. 冒泡排序(Bubble Sort):通過比較相鄰元素的大小,不斷交換位置,將較大值逐漸“冒泡”到數組的最后。
void bubbleSort(int arr[], int n) {
    for (int i = 0; i < n-1; i++) {
        for (int j = 0; j < n-i-1; j++) {
            if (arr[j] > arr[j+1]) {
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}
  1. 選擇排序(Selection Sort):每次從未排序的部分中找到最小(或最大)的元素,與未排序部分的第一個元素交換位置。
void selectionSort(int arr[], int n) {
    for (int i = 0; i < n-1; i++) {
        int minIndex = i;
        for (int j = i+1; j < n; j++) {
            if (arr[j] < arr[minIndex]) {
                minIndex = j;
            }
        }
        int temp = arr[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = temp;
    }
}
  1. 插入排序(Insertion Sort):將數組分為已排序部分和未排序部分,每次將未排序部分的第一個元素插入到已排序部分的正確位置。
void insertionSort(int arr[], int n) {
    for (int i = 1; i < n; i++) {
        int key = arr[i];
        int j = i - 1;
        while (j >= 0 && arr[j] > key) {
            arr[j+1] = arr[j];
            j--;
        }
        arr[j+1] = key;
    }
}
  1. 快速排序(Quick Sort):選擇一個基準元素,將數組劃分成兩個子數組,左邊的元素小于等于基準,右邊的元素大于基準,遞歸地對子數組進行快速排序。
int partition(int arr[], int low, int high) {
    int pivot = arr[high];
    int i = low - 1;
    for (int j = low; j <= high-1; j++) {
        if (arr[j] < pivot) {
            i++;
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }
    int temp = arr[i+1];
    arr[i+1] = arr[high];
    arr[high] = temp;
    return i + 1;
}

void quickSort(int arr[], int low, int high) {
    if (low < high) {
        int pi = partition(arr, low, high);
        quickSort(arr, low, pi-1);
        quickSort(arr, pi+1, high);
    }
}

這些僅僅是一些常見的排序算法,C++中還有其他排序算法的實現。根據實際情況和需求,選擇合適的排序算法既能提高排序效率,也能減少資源消耗。

0
武川县| 凌云县| 合山市| 施秉县| 景泰县| 无棣县| 淮安市| 绥滨县| 鲁甸县| 丹棱县| 钟祥市| 白水县| 来凤县| 贺兰县| 林州市| 油尖旺区| 蓝山县| 新昌县| 红桥区| 望江县| 绵阳市| 房产| 依安县| 南安市| 万源市| 金坛市| 青岛市| 忻城县| 冷水江市| 荔波县| 临桂县| 宁陵县| 梁河县| 思茅市| 阳西县| 汝南县| 罗源县| 辽源市| 湟中县| 辰溪县| 昌黎县|