大家好,小宝来为大家解答以上问题。排序方法c语言,排序方法很多人还不知道,现在让我们一起来看看吧!

1、 1选择并排序一组已知的无序数据a[1],a[2],A [n],并按升序排列。

2、首先,比较a[1]和a[2]的值。

3、如果a[1]大于a[2],则两者的值交换,否则不变。

4、然后比较a[1]和a[3]的值,如果a[1]大于a[3],则交换它们的值,否则保持不变。

5、然后比较a[1]和a[4],以此类推,最后比较a[1]和a[n]的值。

6、经过这样一轮处理,a[1]的值一定是这组数据中最小的。

7、再用同样的方法比较a[2]和a[3]~a[n],那么a[2]的值一定是a[2]~a[n]中最小的。

8、用同样的方法比较a[3]和a[4]~a[n]再进行一轮,以此类推。

9、经过n-1轮处理后,a[1],a[2],A [n]按升序排列。

10、优点:稳定,比较次数与冒泡排序相同;缺点:比较慢。

11、2插入排序。

12、我们知道一组升序数据a[1],a[2],… A [n],以及一组无序数据b[1],b[2],… B [m]。

13、我们需要将它们组合成一个升序序列。

14、首先比较b[1]和a[1]的值。

15、如果b[1]大于a[1],跳过并比较b[1]和a[2]的值。

16、如果b[1]仍然大于a[2],继续跳过,直到b[1]小于A数组中的某个数据a[x],然后以同样的方式插入B[2]~b[m]。

17、(如果有无数组A,b[1]可以看作n=1的数组A)优点:稳定快速;缺点:比较次数不确定。

18、比较次数越少,插入点之后的数据移动越多,尤其是当数据总量巨大时。

19、但是链表可以解决这个问题。

20、3归并排序由Hill于1959年提出,又称Hill排序(shell sort)。

21、给定一组无序数据a[1],a[2],我们需要把它们按升序排列。

22、发现当n不大时,插入排序的效果很好。

23、先取一个增量d(d),列出a[1],a[1 d],A [12D] …为第一组,a[2],a[2 d],A [22D] …为第二组…,a[d],a[2d],a[。

本文到此结束,希望对大家有所帮助。