快速排序演算法的原理:
將數列中任取乙個數,將其左部放置比其小的數,其右部放置比其大的數。然後,對其左,右部遞迴執行這種分割過程。
原始碼如下:
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,...