排序

1.冒泡排序,2.选择排序,3.快速排序,4.插入排序

几种常见的排序方式,速度是快排 >插入> 冒泡> 选择
例子都是从小到大排序
冒泡排序

int main()
{
int ar[11];
int i;
srand(time(NULL));//伪随机数种子
for(i = 0;i < 11;i++)
    ar[i] = rand()%100;//获取随机数
int a,b;
//排序
for(a=0;a<10;a++)
{
    for(b=0;b<10-a;b++)
    {
        if(ar[b]>ar[b+1])
        {
        //交换
        ar[b+1]=ar[b+1]+ar[b];
        ar[b]=ar[b+1]-ar[b];
        ar[b+1]=ar[b+1]-ar[b];
        }
    }
}
//打印
for(i=0;i<10;i++)
{
printf("%d  ",ar[i]);
}
printf("\n");
return 0;
}

选择排序

int main()
{
int buf[10];
int i;
srand(time(NULL));
for(i=0;i<10;i++)
    buf[i]=rand()%100;
int j,k;

for(j=0;j<9;j++)
    {
        for(k=j+1;k<10;k++)
        {
            if(buf[j]>buf[k])
            {
                buf[k]=buf[k]+buf[j];
                buf[j]=buf[k]-buf[j];
                buf[k]=buf[k]-buf[j];
            }
        }
    }
for(i=0;i<10;i++)
{
printf("%d  ",buf[i]);
}
printf("\n");
return 0;
}

快速排序

void sort(int *a, int left, int right)
{
  if(left >= right)
  {
      return ;
  }
  int i = left;
  int j = right;
  int key = a[left];
   
  while(i < j) 
  {
      while(i < j && key <= a[j])//后一个判断决定顺序
      {
          j--;
      }
      a[i] = a[j];
      while(i < j && key >= a[i])
      {
          i++;
      }
      a[j] = a[i];
  }
  a[i] = key;
  sort(a, left, i - 1);//递归调用
  sort(a, i + 1, right);
}
int main()
{
int buf[10];
int i=0,j=9;
srand(time(NULL));
for(j=0;j<10;j++)
  buf[j]=rand()%100;

sort(buf,0,9);
for(i=0;i<10;i++)
{
printf("%d  ",buf[i]);
}
printf("\n");
}

插入排序

int main()
{
int R[10];
int i,j;
srand(time(NULL));
for(j=0;j<10;j++)
    R[j]=rand()%100;
    int temp;
for(i=1;i<10;i++)
{
  if(R[i]<R[i-1]) 
  {
    temp=R[i];  
    j=i-1;
    do        
    {
        R[j+1]=R[j];
        j--;
    }
    while(temp<R[j]);
    if(j != i-1)
        R[j+1]=temp; 
  }
}
for(i=0;i<10;i++)
{
printf("%d  ",R[i]);
}
printf("\n");
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、 单项选择题(共71题) 对n个元素的序列进行冒泡排序时,最少的比较次数是( )。A. n ...
    貝影阅读 9,196评论 0 10
  • 总结一下常见的排序算法。 排序分内排序和外排序。内排序:指在排序期间数据对象全部存放在内存的排序。外排序:指在排序...
    jiangliang阅读 1,369评论 0 1
  • 排序的基本概念 在计算机程序开发过程中,经常需要一组数据元素(或记录)按某个关键字进行排序,排序完成的序列可用于快...
    Jack921阅读 1,458评论 1 4
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,214评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,742评论 0 15