クイックソート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;
}




また、このブログはよく書けていて、イメージが分かりやすいです.
便器に座ってアルゴリズムの迅速なソートを見る