排序算法(2)-快速排序

// 快速排序算法
void quickSort(int *b,int left,int right) {
    if (left<0 || left>right) {
        return;
    }
    int i = left;     // 標記開始位置
    int j = right;    // 標記末尾位置
    int key = b[i];   // 選擇分治的數據

    while (i < j) {
        while (i < j && key <= b[j]) {    // 首先從後往前尋找比制定數據值小的數據
            j--;
        }
        b[i] = b[j];
        
        while (i < j && key >= b[i]) {    // 首先從前往後尋找比制定數據值大的數據
            i++;
        }
        b[j] = b[i];
    }
    b[i] = key;
    quickSort(b, left, i-1);
    quickSort(b, i+1, right);
    
    return;
}



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