数据的排序-四种方法

趁着睡觉前看了看关于数据排序的那章内容。这本书上就介绍了四种排序方法。快速排序,选择排序,冒泡排序和插入法。最早学c语言的时候接触了最大众话的冒泡。

思想

冒泡排序:其思想最简单,就是经过n次相邻数的比较把最大的那个数放到数据的最后面,然后一次循环,到最后可以把所有的数按照大小顺序排列开来。这种排序总共需要n-1轮的比较以及大量的交换。

快速排序:我感觉和冒泡差不多;第一轮,是以第一个数为基准,把2~n个数一次与第一个比较,小的放到第一位,这样一轮结束后最小的数放到了第一位;然后进行第二轮,把第二小的数放到第二个位置,依次类推……这样的排序也是经过了n-1轮的比较。

选择排序:第一轮时,找出n个数中最小的那个数,与第一个数交换,第二轮找到第2~n个数中最小的数和第二个数交换,依次继续……每一轮中只有找到了最小的数才交换,也就是说每一轮只需要进行一次的数据交换。这样大大减少了数据交换的次数,不过这样的排序也是要经过n-1轮的比较。

插入法排序:这个思想稍微复杂点,不过程序运行起来应该是最简单的。将需要排列的数据存放到a,b两个数组中,第一步:先让a[1]和b[0]做比较,如果a1<b0,就先把b0放入b1,再将a1放入b0,如果a1>b0,直接将a1放入b1,第二步:将a2和b0,b1做比较,此时b0<b1,如果a2<b0,就把b0,b1的下标加一,也就是把b0,b1依次赋值给b1,b2;这样小的数a2就放到了b0,如果a2<b1,但是a2>b0,就把b1放到b2中,把a2放到b1中,如果a2>b1,就把a2赋值给b2;这样数组b中的数据依次排序……用到了插入数据的方法,比这个数小的数组下标不变,比他大的数组下标依次加1,这个数就放到中间那个数组中。

代码:(代码以后再贴)

################

################

¥¥¥¥¥¥¥¥¥¥

以后如果有更好的排序方法再总结出来。

你可能感兴趣的:(c,语言)