Posted on 2008-08-27 15:45 
dengbo 阅读(766) 
评论(0)  编辑 收藏 引用  所属分类: 
Data Struct 
			 
			
		 
		 void SelectSort(int num[], int count)
void SelectSort(int num[], int count)


 {
{
 int tmp,minIndex;
    int tmp,minIndex;
 for(int i=0; i<count; i++)
    for(int i=0; i<count; i++)

 
     {
{
 minIndex = i;
        minIndex = i;
 for(int j=i+1; j<count; j++)
        for(int j=i+1; j<count; j++)

 
         {
{
 if(num[minIndex]>num[j])
            if(num[minIndex]>num[j])

 
             {
{
 minIndex=j;
                minIndex=j;
 }
            }
 }
        }
 if(minIndex != i)
        if(minIndex != i)

 
         {
{
 tmp = num[i];
            tmp = num[i];
 num[i] = num[minIndex];
            num[i] = num[minIndex];
 num[minIndex] = i;
            num[minIndex] = i;
 }
        }
 }
    }
 }
} void quicksort (int a[], int lo, int hi)
void quicksort (int a[], int lo, int hi)


 {
{
 //  lo is the lower index, hi is the upper index
//  lo is the lower index, hi is the upper index
 //  of the region of array a that is to be sorted
//  of the region of array a that is to be sorted
 int i=lo, j=hi, h;
    int i=lo, j=hi, h;
 int x=a[(lo+hi)/2];
    int x=a[(lo+hi)/2];

 //  partition
    //  partition
 do
    do

 
     {
{    
 while (a[i]<x) i++;
        while (a[i]<x) i++; 
 while (a[j]>x) j--;
        while (a[j]>x) j--;
 if (i<=j)
        if (i<=j)

 
         {
{
 h=a[i]; a[i]=a[j]; a[j]=h;
            h=a[i]; a[i]=a[j]; a[j]=h;
 i++; j--;
            i++; j--;
 }
        }
 } while (i<=j);
    } while (i<=j);

 //  recursion
    //  recursion
 if (lo<j) quicksort(a, lo, j);
    if (lo<j) quicksort(a, lo, j);
 if (i<hi) quicksort(a, i, hi);
    if (i<hi) quicksort(a, i, hi);    
 }
}
