A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lixp 中级黑马   /  2015-11-6 20:03  /  943 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. rest(int a[], int n)
  2. {
  3.         int i,low,high,t;

  4.         for(i=0,low=0,high=n-1;i<=high;)
  5.         {
  6.                 if(a[i]>0)
  7.                 {
  8.                         /*a[i]与a[high]交换,随之high减1*/
  9.                         t=a[i];
  10.                         a[i]=a[high];
  11.                         a[high]=t;
  12.                         high--;
  13.                 }
  14.                 else if(a[i]==0)
  15.                         i++; /* 掠过该元素 */
  16.                 else
  17.                 {
  18.                         /*a[i]与a[low]交换,随之low增1, i增1*/
  19.                         t=a[i];
  20.                         a[i]=a[low];
  21.                         a[low]=t;
  22.                         low++;
  23.                         i++;
  24.                 }
  25.         }
  26. }
  27. int s[]={8,4,0,-1,6,0,-5};
  28. main()
  29. {
  30.         int i;
  31.         clrscr();
  32.         printf("\n The arry before rest is:\n");
  33.         for(i=0;i<sizeof(s)/sizeof(s[0]);i++)
  34.                 printf("%4d",s[i]);
  35.         rest(s,sizeof(s)/sizeof(s[0]));
  36.         printf("\n The arry after rest is:\n");
  37.         for(i=0;i<sizeof(s)/sizeof(s[0]);i++)
  38.                 printf("%4d",s[i]);
  39.         printf("\n Press any key to quit...\n");
  40.         getch();
  41. }
复制代码

3 个回复

倒序浏览
冒泡排序思想 :


int a[6]={6,8,1,3,5,2};
int temp;
for (int i =0;i<6; i++){

for (int j=0;j<6;j++){

if(a[i]>a[j]){

temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for (int i =0;i<6;i++){
printf("%d\t",a[i]);

}  遍历数组

回复 使用道具 举报
其实排序有很多种,其中简单的可能大家知道有冒泡、插入,其实还有很多种,如果你感兴趣我们可以聊一聊,排序还有直接选择排序,插入排序、堆排序、希尔排序、基数排序、计数排序、桶排序、快速排序,应用场合不同,时间复杂度和空间复杂度也不同。
回复 使用道具 举报
赞一个  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马