稳定 冒泡排序 冒泡排序是不断比较相邻两个元素,并不断交换,最后把大的放到数组后面。第一趟遍历会把最大的元素放到(n-1)位置,第二趟遍历会把第二大的元素放到(n-2)的位置,以此类推。 最好的情况是当数组有序,跑一次内存循环(时间复杂度为O(N))后,因为isSorted为true,外层循环直接退 ...
分类:
编程语言 时间:
2019-10-29 23:43:23
阅读次数:
95
排序算法说明 1.1 排序的定义: 对一序列对象根据某个关键字进行排序。 1.2 属于说明: 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序:所有排序操作都在内存中完成; 外排序:由于数据太大,因此把数 ...
分类:
编程语言 时间:
2019-10-13 17:19:11
阅读次数:
90
十大排序算法总结(Python3实现) 本文链接:https://blog.csdn.net/aiya_aiya_/article/details/79846380 目录 一、概述 二、算法简介及代码展示 1.冒泡排序 2.简单选择排序 3.简单插入排序 4.堆排序 5.快速排序 6.希尔排序 7. ...
分类:
编程语言 时间:
2019-09-19 21:06:02
阅读次数:
124
各种排序算法总结和比较 排序算法可以说是一项基本功,解决实际问题中经常遇到,针对实际数据的特点选择合适的排序算法可以使程序获得更高的效率,有时候排序的稳定性还是实际问题中必须考虑的,这篇博客对常见的排序算法进行整理,包括:插入排序、选择排序、冒泡 ...
分类:
编程语言 时间:
2019-09-08 11:19:41
阅读次数:
92
#include <iostream> #include <list> #include <sstream> #include <map> #include <set> #include <queue> #include <map> #include <functional> #include <a... ...
分类:
编程语言 时间:
2019-08-27 21:20:04
阅读次数:
105
算法总结 详细十大排序算法:https://www.cnblogs.com/WindSun/category/1375215.html 图片名词解释: n: 数据规模 k: “桶”的个数 In-place: 占用常数内存,不占用额外内存 Out-place: 占用额外内存 算法的分类 比较和非比较的 ...
分类:
编程语言 时间:
2019-08-16 00:21:25
阅读次数:
86
1、冒泡排序,不管序列是怎样,都是要比较n(n-1)/2 次的,最好、最坏、平均时间复杂度都为O(n²),需要一个临时变量用来交换数组内数据位置,所以空间复杂度为O(1)。 优化:使用一个标志位来判断是否有序,若果有序,那么循环一次就直接退出,时间复杂度为O(n)。 2、选择排序是冒泡排序的改进,同 ...
分类:
编程语言 时间:
2019-08-09 23:32:27
阅读次数:
157
冒泡排序:从无序区通过交换找出最大元素放到有序区前端。 选择排序:从未排序序列中找到最小(大)元素,存到已排序序列的起始位置。 插入排序: 1. 从第一个元素开始,该元素可以认为已经被排序 2. 取出下一个元素,在已经排序的元素序列中从后向前扫描 3. 如果该元素(已排序)大于新元素,将该元素移到下 ...
分类:
编程语言 时间:
2019-07-22 22:45:25
阅读次数:
156
排序算法 大部分算法都是从 无序区 扩展到 有序区 一、算法概述 1. 冒泡排序 O(N2),空间O(1) 每一轮从无序区冒泡出一个最大的数到有序区 2. 选择排序O(N2),空间O(1) 每一轮从无序区选择一个最大的数到有序区 3. 堆排序O(NlogN),空间O(1) 其实就是 选择排序的改进 ...
分类:
编程语言 时间:
2019-07-14 12:56:49
阅读次数:
124
1、 冒泡排序 冒泡排序(bubble sort),是一种基础的交换排序。基本思想是,把相邻的元素两辆进行比较,当一个元素大于右侧相邻元素时,交换它们的位置;当一个元素小于或等于右侧相邻元素时,位置不变。 冒泡排序是一种稳定排序,值相等的元素并不会打乱原本的顺序。由于该排序算法每一轮都要遍历所有元素 ...
分类:
编程语言 时间:
2019-06-26 01:06:10
阅读次数:
145