排序算法(未写完,等待)

2019-02-21  本文已影响14人  偷了月光的猫

1.选择排序(每次选择最小的放在最前面)

选择排序的基本思想: 

每一趟在n-i+1(i=1,2,3…,n-1)个记录中选取关键字最小的记录与第i个记录交换,并作为有序序列中的第i个记录

选择排序的时间复杂度为:O(n^2),空间复杂度:O(1)    选择排序是不稳定的;

eg:

待排序列: 43,65,4,23,6,98,2,65,7,79

第一趟: 2,65,4,23,6,98,43,65,7,79

第二趟: 2,4,65,23,6,98,43,65,7,79

第三趟: 2,4,6,23,65,98,43,65,7,79

第四趟: 2,4,6,7,43,65,98,65,23,79

第五趟: 2,4,6,7,23,65,98,65,43,79

第六趟: 2,4,6,7,23,43,98,65,65,79

第七趟: 2,4,6,7,23,43,65,98,65,79

第八趟: 2,4,6,7,23,43,65,65,98,79

第九趟: 2,4,6,7,23,43,65,65,79,98

2.冒泡排序(一二比较,二三比较,。。。)

冒泡排序的基本思想为:

一趟冒泡排序的过程为:首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则将两个记录交换之,然后比较第二个记录的关键字和第三个记录的关键字,依次类推,直至第n-1个记录和第n个记录的关键字进行过比较为止;

在冒泡排序的过程中,关键字较小的记录好比水中气泡逐趟向上漂浮,而关键字较大的记录好比石头往下沉,每一趟有一块“最大”的石头沉到水底。

冒泡排序的时间复杂度为:O(n^2),空间复杂度为O(1) 冒泡排序是稳定的;

例如:

待排序列:43, 65, 4, 23, 6, 98, 2, 65, 7, 79

第一趟: 43, 4,23,6,65,2,65,7,79,98

第二趟: 4,23,6,43,2,65,7,65,79,98

第三趟: 4,6,23,2,43,7,65,65,79,98

第四趟: 4,6,2,23,7,43,65,65,79,98

第五趟: 4,2,6,7,23,43,65,65,79,98

第六趟: 2,4,6,7,23,43,65,65,79,98

上一篇下一篇

猜你喜欢

热点阅读