美文网首页
c语言排序

c语言排序

作者: star_night | 来源:发表于2017-03-20 22:10 被阅读0次

插入排序

void f(int n)//n指字符串长度
{
    int i,j,key;
    for(i=2;i<=n;i++){//a[i]从第二个数开始遍历
        key=a[i];//将当前的数记为key并拿出
        j=i-1;//a[j]指a[i]的前一个数
        while(j>0&&(a[j]>key)){//将key与a[i]左边的数一一比较大小至最左端
            a[j+1]=a[j];//若key比a[j]大则把a[j]前移
            j--;//a[j]左移
        }
        a[j+1]=key;//最后将key插入数列
    }
}

冒泡排序

void f(int n)
{
  int i,j,t;
  for(i=1;i<=n-1;i++){//n个数排序,只用进行n-1趟
    for(j=1;j<=n-i;j++){//从第1位开始比较直到最后一个尚未归位的数      
       if(a[j]<a[j+1]){//比较大小并交换,使该数浮到正确的位置
          t=a[j]; a[j]=a[j+1]; a[j+1]=t; 
       }
    } 
  }
}

桶排序

#include <stdio.h>
int book[1001]//每一个book[i]代表一个桶
int main() 
{
    int i,j,t,n;
    scanf("%d",&n);//输入一个数n,表示接下来有n个数  
    for(i=1;i<=n;i++){
      scanf("%d",&t); //把每一个数放入book[t]中
      book[t]++; //进行计数
    }
    for(i=1000;i>=0;i--){ //依次遍历编号1000到0的桶       
      for(j=1;j<=book[i];j++){ //出现了几次就将桶的编号打印几次
             printf("%d ",i);
      }
    }
    return 0; 
}

相关文章

网友评论

      本文标题:c语言排序

      本文链接:https://www.haomeiwen.com/subject/hlainttx.html