クイックソートC++実装
Theory:
早列の基本思想:1.まず数列から1つの数を基準数として取り出す.2.パーティション化プロセスでは、この数より大きい数を右に、それより小さい数または等しい数を左にすべて配置します.3.各区間が1つになるまで、左右の区間について2番目のステップを繰り返す.
Implement:
Test結果:
The orginal arrayare: 12 345 545 123 45 10 8 23 1 21 The sorted arrayare: 1 8 10 12 21 23 45 123 345 545
Summary:速列は分治の思想で、1つの基準数を取って、配列を左右2部にして、左の小さい、右の大きい 左右2部を順次再区分し、基準をとる.最終結果 速い列のこの思想も求めることができて、配列の中のK番目の大きい値
早列の基本思想:1.まず数列から1つの数を基準数として取り出す.2.パーティション化プロセスでは、この数より大きい数を右に、それより小さい数または等しい数を左にすべて配置します.3.各区間が1つになるまで、左右の区間について2番目のステップを繰り返す.
Implement:
#include
using namespace std;
void quick_sort(int array[], int start, int last)
{
int i = start;
int j = last;
int temp = array[i];
if (i < j)
{
while (i < j)
{
while (i < j && array[j]>=temp )
j--;
if (i < j)
{
array[i] = array[j];
i++;
}
while (i < j && temp > array[i])
i++;
if (i < j)
{
array[j] = array[i];
j--;
}
}
// i
array[i] = temp;
quick_sort(array, start, i - 1);
quick_sort(array, i + 1, last);
}
}
int main()
{
int array[]={12,345,545,123,45,10,8,23,1,21};
int len=sizeof(array)/sizeof(int);
cout<
Test結果:
The orginal arrayare: 12 345 545 123 45 10 8 23 1 21 The sorted arrayare: 1 8 10 12 21 23 45 123 345 545
Summary: