五种排序方法总结

来源:互联网 发布:淘宝二次审核不通过 编辑:程序博客网 时间:2024/04/29 12:36
此次介绍的是五种排序的方法:
1.冒泡排序
2.选择排序
3.快速排序
4.插入排序
5。二分查找




1:冒泡法,即利用相邻的两个数之间来比较达到交换的目的 从而把最大或最小的数 


移到某一边。故而 此种方法要 进行多个趟次与比较多次。
例如:n个数字,则要进行n-1趟比较。在第m趟中要进行n-m次两两之间的比较。(n>m)




2:选择排序法,即先通过找到满足你想要的条件的位置后,记录下该位置。再把该位


置交换到你想要的某个位置上。
例如:在1 6 8 3 9 4 这串数字中。 你如果要按升序(降序)排序,即要把最大(最小)


的放在最后一个位置。则先通过两两之间的比较,但并不同冒泡法一样的交换,而是


记录下较大(较小)的位置,再与下一个进行比较,直到寻找到最大(最小)的数的那个


位置。后再与最后一个数字交换位置。但还需注意此个条件:如果本身第一个或最后


一个数就是最大(最小)的数,就不必交换了。故而if(k!=i) 此个判断条件要用上。




3.快排法:即快速排序。但此次,我介绍的是应用结构体与快排结合来达到排序的效


果。
首先是结构体的建立。例:
以  bool cmp(point a,point b) 为例
定义结构体的使用方式 如何使用来达到排序的作用
其次是在排序过程中 例:
sort(c,c+n,cmp) C可以是之前定义好的数组 而n则是个数的多少 cmp则是快排的排列


顺序按之前设定好的结构体的形式
这样就可以把你的输入数字按照你想要的cmp的顺序排序好 这样的处理可以节约你对


做题排序题目的思考。




4.插入排序,即在给定的一串数字中,再插入某个数字,后再按一定的顺序输出。在


这里,介绍两种解题方法。
first:你可以把给定的数字先排序好放入数组,后再用查找的方式,找到符合条件放


进去的位置,后再把你插入位置后排序好的数组都后退一个位置。即a[i]=a[i-1].
last:先把给定的数字输入数组,注意:是先从a[1]放第一个数字,把a[0]空余出来。


把数字放好后,再把要插入的数字放在a[0],然后就可以用之前介绍的某个排序方法


,把a[0]到a[n]按顺序排序后输出了。




5.二分查找,即在给定的一串数字中,寻找你想要的数字。提示:此次查找应用的前


提是在已经排序好的数字中才能应用。
首先,是找到中间数min,再通过你要查找的数与中间数的比较,如果你要找的数字


(m>min)则向右边查找,如果(m<min)则向左边查找。并记录下位置的变化。
此种方法可以节约查找到效果所要的时间。
0 0
原创粉丝点击