快速排序演算法實現

2021-05-22 21:23:11 字數 905 閱讀 9600

快速排序演算法的原理:

將數列中任取乙個數,將其左部放置比其小的數,其右部放置比其大的數。然後,對其左,右部遞迴執行這種分割過程。

原始碼如下:

int32 sorteddata = ;

int32 quicksort( int32 *sortdata, dword sortdatalen )

assert( sortdata != null );

assert( sortdatalen > 0 );

leftdatalen = 0;

rightdatalen = 0;

sel_data = sortdata[ sel_data_index ];

for( i = 1; i < sortdatalen; i ++ )

else if( sortdata[ i ] > sel_data )

}#define min_sort_data_len 1

if( leftdatalen > min_sort_data_len )

if( rightdatalen > min_sort_data_len )

count = 0;

for( i = 0; i < leftdatalen; i ++ )

sortdata[ count ++ ] = sel_data;

for( i = 0; i < rightdatalen; i ++ )

free( leftsortdata );

free( rightsortdata );

return 0;

}void main()

quicksort( sorteddata, sizeof( sorteddata ) / sizeof( sorteddata[ 0 ] ) );

程式中使用第1個元素做為先擇元素。

快速排序演算法實現

學完了快速排序演算法,感覺挺容易的,所以趁著有點時間就寫了個實現程式。採用了介面和實現分離的原則 qsort.h inte ce of the quick sort define num 2000 設定最多個數為1999個 class qsort qsort.cpp include qsort.h ...

快速排序演算法實現

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

快速排序演算法實現

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