學完了快速排序演算法,感覺挺容易的,所以趁著有點時間就寫了個實現程式。
採用了介面和實現分離的原則
//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...