美文网首页
排序算法(未写完,等待)

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

作者: 偷了月光的猫 | 来源:发表于2019-02-21 09:09 被阅读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

相关文章

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

    1.选择排序(每次选择最小的放在最前面) 选择排序的基本思想: 每一趟在n-i+1(i=1,2,3…,n-1)个记...

  • 算法解析之冒泡排序

    算法思路:1、序列分为未排序部分和已排序部分,初始状态为全部未排序2、扫描未排序部分,调整相邻元素的顺序,使未排序...

  • 算法理解之排序-冒泡排序

    算法理解之排序-冒泡排序 冒泡排序是一种简单的排序算法, 算法依次走访未排序的元素, 然后将相邻元素依次两两比较,...

  • 面试基础算法复习

    排序算法 选择排序、冒泡排序、插入排序三种排序算法可以总结为如下:都将数组分为已排序部分和未排序部分。选择排序将已...

  • 插入排序算法

    插入排序(Insertion Sort)算法通过对未排序的数据执行逐个插入至合适的位置而完成排序工作。插入排序算法...

  • 算法理解之排序-选择排序

    算法理解之排序-选择排序 选择排序是一种简单直观的排序算法, 以当前点为锚点, 向后依次进行比较所有未排序元素, ...

  • 排序算法---插入排序(Insertion Sort)

    算法基本思想: 插入排序(Insertion Sort)算法通过对未排序的数据执行逐个插入至合适的位置而完成排序工...

  • 插入排序

    算法简介   插入排序(插入分页)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数...

  • 分解javascript 选择排序算法

    掌握算法,先理解原理 选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序...

  • SelectionSort—选择排序

    选择排序 选择排序算法的运作如下: 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置然后,再从剩余未...

网友评论

      本文标题:排序算法(未写完,等待)

      本文链接:https://www.haomeiwen.com/subject/dsvlyqtx.html