排序

1128阅读 0评论2012-11-20 Helianthus_lu
分类:

排序算法
1 插入排序
     a.直接插入
     b.希尔排序

2 选择排序
     a.直接选择排序
     b.堆排序

3. 交换排序
      a.冒泡
      b.快速排序


#include
#include

int partition(int a[], int low, int high)
{
int standard = a[low];
int i=low;
int j=high;
while(i {
   while(a[j]>standard && i    a[i]=a[j];
   while(a[i]    a[j] = a[i];
}           
a[i] = standard;
  return i;

}

void quick_sort(int a[], int low, int high)
{
int position;
if(low      {
     position = partition(a, low, high);
     quick_sort(a, low, position-1);
     quick_sort(a, position+1, high);
     }
    
}

void print(const int a[], int n)
{
int i;
for(i=0;i   printf("%d, ", a[i]);
printf("\n");
}   

int main(int argc, char *argv[])
{
  int a[] = {2, 34, 1, 234, 31, 23, 98};
   print(a, 7);
  quick_sort(a, 0, 7);
   print(a, 7);
  system("pause");    
    return 0;
}
上一篇:内存管理中的虚拟地址到物理地址翻译
下一篇:判断一个整数是否为2的n次幂