Chinaunix首页 | 论坛 | 博客
  • 博客访问: 350368
  • 博文数量: 100
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 521
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-31 11:37
个人简介

活到老,学到老

文章分类

全部博文(100)

文章存档

2018年(1)

2017年(2)

2016年(11)

2015年(82)

2014年(4)

我的朋友

分类: C/C++

2015-08-04 14:48:02


  1. #include<stdio.h>

  2. void bubblesort(int *pdata,int cout)
  3. {
  4.     int i=0;
  5.     int j=0;
  6.     int temp=0;
  7.     
  8.     for(i=0;i<cout;i++)
  9.     {
  10.         for(j=0;j<cout-i-1;j++)
  11.         {
  12.             if(pdata[j]>pdata[j+1])
  13.             {
  14.                 temp=pdata[j];
  15.                 pdata[j]=pdata[j+1];
  16.                 pdata[j+1]=temp;
  17.             }
  18.         }
  19.     }
  20. }

  21. void choicesort(int *pdata,int cout)
  22. {
  23.     int i=0;
  24.     int j=0;
  25.     int min=0;
  26.     int temp=0;

  27.     for(i=0;i<cout;i++)
  28.     {
  29.         min=i;
  30.         for(j=i+1;j<cout;j++)
  31.         {
  32.             if(pdata[j]<pdata[min])
  33.             min=j;
  34.         }
  35.         if(min!=i)
  36.         {
  37.             temp=pdata[i];
  38.             pdata[i]=pdata[min];
  39.             pdata[min]=temp;
  40.         }
  41.     }
  42. }


  43. void quicksort(int *pdata,int left,int right)
  44. {
  45.     int i=0;
  46.     int j=0;
  47.     int temp=0;
  48.     
  49.     if(left<right)
  50.     {
  51.         i=left;
  52.         j=right;
  53.         temp=*(pdata+i);
  54.         while(i<j)
  55.         {
  56.             while(i<j && *(pdata+j)>temp)
  57.                 j--;
  58.             if(i<j)
  59.             {    
  60.                 *(pdata+i)=*(pdata+j);
  61.                 i++;
  62.             }    
  63.             while(i<j && *(pdata+i)<=temp)
  64.                 i++;
  65.             if(i<j)
  66.             {
  67.                 *(pdata+j)=*(pdata+i);
  68.                 j--;
  69.             }
  70.         }    
  71.         *(pdata+i)=temp;
  72.         quicksort(pdata,left,i-1);
  73.         quicksort(pdata,i+1,right);
  74.     }
  75. }

  76. void printdata(int *pdata,int cout)
  77. {
  78.     int i=0;
  79.     for(i=0;i<cout;i++)
  80.     {
  81.         printf("%d ",pdata[i]);
  82.     }
  83.     printf("\n");
  84. }

  85. int main(int argc,char **argv)
  86. {
  87.     int a[10]={12,32,3,54,56,62,78,98,19,40};
  88.     printdata(a,10);
  89.     //bubblesort(a,10);
  90.     //quicksort(a,0,10);
  91.     choicesort(a,10);
  92.     printdata(a,10);
  93.     return 0;
  94. }

阅读(637) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~