选择排序和冒泡排序

文章介绍了两种基础排序算法——选择排序和冒泡排序。在选择排序中,通过比较找到最高平均成绩的学生并将其移动到前面,从而实现从高到低的排序。而冒泡排序则是通过不断比较相邻元素并交换位置,逐步将最大数推至末尾,实现从小到大的排序。文章通过实例展示了这两种排序方法的工作原理。
摘要由CSDN通过智能技术生成

一、选择排序

例题:p226第九章例9-2

要求将学生的成绩信息按照学生的个人平均成绩从高到低输出它们的信息

//结构数组排序,使用选择排序法

for(i=0;i<n-1;i++){//只用进行n-1次
    index=i;//index暂时用来储存i,用来等会比较
    for(j=i+1;j<n;j++){//j=i+1是因为要将index与index后面一位进行比较,此时index储存的还是i的值
        if(stu[j].average>stu[index].average){//比较平均成绩
           index=j;}    }//此时index赋值为j
    change=stu[index];
    stu[index]=stu[i];
    stu[i]=change;//交换数组元素,把第i个和它以后最大的进行交换。每次选出最大的,放在排序区间的最前面,也就是i的位置
    }//这种交换一共进行了i-1次

        

执行完这一步骤后,个人平均成绩被从高到低进行排序

二、冒泡排序

例题:p197第八章例8-5

输入n(n<=10)个正整数,将他们从小到大排序后输出。要求使用冒泡排序算法

for(i=1;i<n;i++){//外部循环。进行n-1次循环
   for(j=0;j<n-i;j++){//内部循环。
      if(a[j]>a[j+1]){//比较相邻两个数的大小,一共比较n-i次;
         change=a[j];
         a[j]=a[j+1];
         a[j+1]=change;}//如果第j个数大于j第j+1个数,则将它们俩位置交换,否则,继续比较第j+1和j+2个数的大小;
      }//每次排序都在将较大的数往后挪一个位置,直到遇到比它更大的数则停止挪动该数值,继续挪动那一个比它更大的数值,每次轮完之后,最大的数排在最后       }

综合来说,选择排序比冒泡排序更容易理解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值