程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C/C++完成疾速排序的辦法

C/C++完成疾速排序的辦法

編輯:關於C++

C/C++完成疾速排序的辦法。本站提示廣大學習愛好者:(C/C++完成疾速排序的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C/C++完成疾速排序的辦法正文


疾速排序不會直接獲得終究成果,只會把比k年夜和比k小的數分到k的雙方。(你可以想象一下i和j是兩個機械人,數據就是年夜小紛歧的石頭,先取走i後面的石頭留出盤旋的空間,然後他們輪番分離遴選比k年夜和比k小的石頭扔給對面,最初在他們中央把取走的那塊石頭放歸去,因而比這塊石頭年夜的全扔給了j那一邊,小的全扔給了i那一邊。只是此次命運運限好,扔完一次恰好排整潔。)為了獲得最初成果,須要再次對下標2雙方的數組分離履行此步調,然後再分化數組,直到數組不克不及再分化為止(只要一個數據),能力獲得准確成果。 —— 取自百度百科(鏈接)

C/C++ 完成:


void quick_sort(int* a, int low, int high){ if (low >= high) {
    return;
} int first = low; int last = high; int key = a[first]; while (first < last) {
    while (first < last && a[last] >= key) {
        --last;
    }
    a[first] = a[last];
 
    while (first < last && a[first] <= key) {
        ++first;
    }
    a[last] = a[first];
}
a[first] = key;
quick_sort(a, low, first-1);
quick_sort(a, first+1, high);
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved