「已注销」 2016-05-13 03:42 采纳率: 100%
浏览 3034
已结题

关于c语言选择法和冒泡法的区别,新手疑问

两种方法怎样区别,求简单解释图片说明图片说明图片说明

  • 写回答

12条回答 默认 最新

  • 水滴滴 2016-05-13 04:36
    关注

    1.冒泡排序基本思想就是对一组数据自上而下,对相邻的两个数作比较,每次让大的气泡向下沉,让小的气泡向上浮。
    例如:3,1,9,2 几个数字,第一轮:3和1比较,3>1,所以交换位置;继续3和9比较,32,9和2交换;
    结果:1,3,2,9

    经过这样一轮比较,最大的数就沉到了最底部,下次比较不用再和9比较了,比较到倒数第二个就可以了,依次比较下去,比较次数为n*(n-1)/2

    2.选择排序基本思想是对一组数据中固定一个位置依次与后面的数做比较,如果后面的数小于这个位置的数,则交换位置
    还拿 3,1,9,2 作为例子,第一个位置 跟第二个位置作比较,3>1,交换位置:1,3,9,2;第一个位置跟第三个位置比较,1<9,不交换;第一个位置跟第四个位置比较,1<2,不做交换;
    结果:1,3,9,2
    第一个位置变成了最小的,所以不参与下轮比较,下次从第二个位置做比较,依次类推,比较次数也是n*(n-1)/2

    区别:
    1.冒泡排序每轮把参与排序中最大的数放在最底部;选择排序每轮参与排序中最小的数放在最顶部
    2.冒泡排序总是比较相邻的两个数,在排序数列中不断移动;选择排序固定一个比较数,被比较数位置不断移动

    用图来表示大致是这样的,圈代表参与比较的数,只是第一轮的:
    图片说明

    希望对你有帮助

    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度