快速排序演算法實現

2021-04-02 09:07:54 字數 607 閱讀 5379

學完了快速排序演算法,感覺挺容易的,所以趁著有點時間就寫了個實現程式。

採用了介面和實現分離的原則

//qsort.h

// inte***ce of the quick sort

#define num 2000  //設定最多個數為1999個

class qsort

;//qsort.cpp

#include "qsort.h"

#include "iostream.h"

#include "fstream.h"

void qsort::getdata()

m_datanum=data_num;}}

int qsort::dopartition(int low,int high)

{int pivot;

data[0]=data[low];

pivot=data[0];

while (low=data[high])) high--; 則是遞減(下面也要改)

data[low]=data[high];

while ((low=data[low])) low++;  //while ((low跟書上的資料組織方式有點不同,簡化了的。。。

快速排序演算法實現

快速排序演算法的原理 將數列中任取一個數,將其左部放置比其小的數,其右部放置比其大的數。然後,對其左,右部遞迴執行這種分割過程。原始碼如下 int32 sorteddata int32 quicksort int32 sortdata,dword sortdatalen assert sortdat...

快速排序演算法實現

本程式是對快速排序演算法的實現,一次while 1 都將要比較的元素存入flag中,依次將比flag小的元素放在左邊,比flag大的元素放在右邊,然後用遞迴的方法,將flag左右兩邊的元素分別快速排序操作。本程式為了方便測試,所以使用者只要輸入元素個數,程式就會隨機生成相應元素個數的陣列,並自動對其...

快速排序演算法實現

快速排序法的時間複雜度是o nlog2n 快速排序使用分割法對錶進行排序。演算法給出一箇中心值,用它將表分為兩部分。快速排序在陣列內將元素分為若干部分。下面是一個具體的例子。注意 寫 的時候要確定高 低索引,中間索引 假設陣列a中含有10個整數值 a 800,150,300,600,550,650,...

快速排序演算法實現

排序在各種場合經常被用到。快速排序是十分常用的高效率的演算法。其思想是 先選一個 標尺 用它把整個佇列過一遍篩子,以保證 其左邊的元素都不大於它,其右邊的元素都不小於它。這樣,排序問題就被分割為兩個子區間。再分別對子區間排序就可以了。快速排序是找出一個元素 理論上可以隨便找一個 作為基準 pivot...

快速排序演算法實現

include include int index int array,int left,int right while array left flag left right if left right 下面 塊,交換參考值與索引處的數值,使得做不得數值都小於索引值,右邊的資料 都大於索引值 tem...