排序演算法實踐程式設計之 快排法

2021-08-04 00:09:55 字數 1504 閱讀 1490

quicksort.h檔案:

#include #include class quicksort

;

修改前,存在問題的quicksort.cpp檔案:

#include #include #include "quicksort.h"

using namespace std;

quicksort::quicksort()

quicksort::~quicksort()

void quicksort::swap(int arr,int i,int j)

void quicksort::quicksort(int arr,int n)

else

if (arr[i] == arr[j] )

; //for (size_t i = 0; i < arsize; i++)

// cout << "arr: ";

for (size_t i = 0; i < arsize; i++)

cout << endl;

//bubblesort bs;

//selectsort ss;

//insertsort is;

quicksort qs;

qs.quicksort(arr,arsize);

cout << "sorted value: " << endl;

cout << "arr: ";

for (size_t i = 0; i < arsize; i++)

cout << endl;

cin.get();

return;

}

執行結果存在問題。

對**進行修改 :

quicksort.cpp 檔案如下 : 

#include #include #include "quicksort.h"

using namespace std;

quicksort::quicksort()

quicksort::~quicksort()

void quicksort::prtarr(int arr, const int arsize)

cout << endl;

return;

}void quicksort::swap(int arr,int i,int j)

void quicksort::quicksort(int arr,int n)

1、將單次的劃分流程單獨封裝在乙個函式裡面,  功能是:輸入兩端值, 從兩端向中間掃瞄,交換數值,直到指標相遇,交換基準值 並 輸出中間值。

2、遞迴函式內部:

1)明確邊界, left>=right

2)呼叫單次劃分

3)遞迴

執行的過程及結果如下:

排序演算法(一)桶排法

啊哈磊 坐在馬桶上看演算法 演算法1 最快最簡單的排序 桶排序 問題 隨機輸入五個0 10之間的數,對輸入的數由小到大排列 方法 桶排法 用乙個大小為11的一維陣列,陣列下標0 10分別表示分數0 10,不同的分數所對應單元格則儲存得此分數的人數 1 include 2 3int main void...

極限程式設計之實踐

今天上班的路上聽了下微軟的webcast,是王為老師講的極限程式設計,回顧了下自己的專案中用到的極限程式設計,就在這整理一下。此專案是自己在2年多之前做的,也算是第一次接觸到極限程式設計。我逐一說明該專案中如何應用極限程式設計的一些要求來完成開發的。此專案組成員為7人,工作環境相對集中,完全可應用極...

C 程式設計之經典演算法 排序(十)

歸併排序 mergesort 歸併 merge 排序法是將兩個 或兩個以上 有序表合併成乙個新的有序表,即把待排序序列分為若干個子串行,每個子串行是有序的。然後再把有序子串行合併為整體有序序列。歸併排序是建立在歸併操作上的一種有效的排序演算法。該演算法是採用分治法 divide and conque...