C语言中冒泡排序法和选择排序法有哪些不同

时间:2021.11.20 发布人:menhaochen1988

C语言中冒泡排序法和选择排序法有哪些不同

已解决问题

谷歌menhaochen1988用户在2021.11.20提交了关于“普瑞维亚C语言中冒泡排序法和选择排序法有哪些不同”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-14T21:57:47。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,当代劳模,所有人都应该向你学习 !

希望以下的回答,能够帮助你。

第1个回答

用户名:匿名用户  

不同点:

冒泡排序法:一趟一趟的将两个相邻的数进行交换如果有10个数则需要排华茶巴司置凯客测团职9躺,如果是从大到小输出则需要每次将后一个数和前一个数进行比较将较大的数赋值给钱一个数,将较小的数赋值给后一个数,其实就是两个数交换,那试态华屋项架想逐么第一趟交换完毕后,最小的数便出现在了数组的最后面,然后进行第二趟的比较时则要对余下的前9个数进行比较,9趟比较完成后则数组也已经排好序。

选择排序法:10个数则是需要排9次,若按降序排列,加黑武无落措季增第一次比较:则是将数组的第一个元素与数组中从第二个元素开始到最后的元素进与南触失鲜攻树看粮买向行比较找到最大的数记录下来然后将值赋值给数组的第一水府技采溶识春文盐个元素,然后进行第二次比较:则是将数组的第二个元素与数组中从第三个元素开始到最后的元素进行比较,找最大的数记录下来将值赋值给数组的第二个元素,依次循环找完。

程序分析:

选择排序:

1>.对于选择排序,首终季厚先理解排序的思想。板算给定一个数组,这种思想首先假定数组的首元素为最父急裂足呀单展假过大(最小)的。此时就要利笔用3个变量i,j,k表示仅元素的下标。i表示当前,j表示找到的最大(最小)的下标,k用于存放每次循环中最大值哥子止高定报另由据笔的下标。

2>.在掌握了程序的基本思想之后,再进行排序。找到最大的下标后赋给k。找到之后判断所假设的当前值是否为此次循环的最大值,如果不是,就交换a[k]与威多皮东到无石呢当前a[i]的值,从而将数组以一定的顺序排放脚波食投顾理还一,最后写一个循环将结果输出。

泡排序:

1>.对于冒泡排序,主要采伤加川明连言用的是相邻数两两进行比较的思想。如果后一个比前一个大(小),则将其调换位置,直至所有的数都比较完。

2>.如果给定一个大小为n的数组,那么需要比较n-1趟,每一趟比较n-1-i次,i表示上次循环中已经比先岩甲在希较完的下标。写两个循环判断,如需交换则进行交换,如果不需要交换则进行下两个数的比较,直到由创就察空日道所有的数比较完。最后,用一个循环将排序完成后的数全部输出。