クイックソートC++
/*
* quick_sort.cpp
*
* Created on: 2016-3-21
* Author: Lv_Lang
*/
//
#include <iostream>
using namespace std;
int a[100];// ,
void swap(int i,int j)
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
/* :
( ),
, , 。
,
: ,
j , , ;
i , , ;
, , 。
, ,
, 。
( ),
, , 。
, 。*/
void quick_sort(int left,int right)
{
if(left >= right)//
return;
int i,j,temp;
i = left;
j = right;
temp = a[left];
while(i < j)
{
while(a[j] >= temp && i < j)
j--;
while(a[i] <= temp && i < j)
i++;
swap(i,j);
}
swap(left,i);
quick_sort(left,i-1);
quick_sort(i+1,right);
}
int main()
{
int n;
cin>>n;
for(int i=0;i < n;i++)
cin>>a[i];
quick_sort(0,5);
for(int i=0;i<5;i++)
cout<<a[i]<<" ";
cout<<a[5]<<endl;
return 0;
}
また、このブログはよく書けていて、イメージが分かりやすいです.
便器に座ってアルゴリズムの迅速なソートを見る