关于排序我想大家都不陌生,所谓排序就是将输入的数字按照从小到大的顺序进行排列。当然排序也是多种多样的,接下来我们来一次看看各种排序: 冒泡排序 选择排序 快速排序 插入排序(挖坑) 堆排序(挖坑) 归并排序(挖坑) 冒泡排序 首先我们从冒泡排序开始说吧(取自于算法动画图解) 先以这9个数为基础,从序 ...
分类:
编程语言 时间:
2019-10-17 13:50:07
阅读次数:
89
10.17 进制转换 排序(归并排序,快速排序) 高精度 gcd ,快速幂 等常用函数,整理模板 素数筛 STL 字符串专题 前缀和与差分 10.18 链表 栈 队列 相关操作 10.19 ...
分类:
其他好文 时间:
2019-10-17 01:16:03
阅读次数:
74
算法理解: 对于无序数组里的任意一个数字V,总有一部分数字小于V,一部分数字大于V。如果我们将比V小的数字放在V的前面,比V大的数字放在后面,那V所在的位置就是整个数组排序后V应该在的位置。 同时我们得到了两个连续的无序数组,和归并排序一样左右递归处理即可。 例一:求数组第k小元素 ...
分类:
编程语言 时间:
2019-10-17 00:50:53
阅读次数:
99
算法理解: 一个数组长度为n,他的前m个元素是升序的,后n-m个元素升序的,怎么使整个数组变成一个升序数组? 如n=6,m=3 排序前 排序后 归并排序采用了分治的想法,一个数组如果左边有序,右边有序则进行合并,如果左边无序递归处理,同理右边也递归处理。 由于归并排序每次使严格二分,所以时间复杂度是 ...
分类:
编程语言 时间:
2019-10-16 17:43:49
阅读次数:
82
排序 起泡排序(bubble sort),归并排序(merge sort) 1,起泡排序(bubble sort),大致有三种算法 基本版,全扫描。 提前终止版,如果发现前区里没有发生交换,就说明前区已经有序了,直接终止了。但是有个效率低下的地方,就是右边界hi是每次循环向前移动一个单元 跳跃版,在 ...
分类:
编程语言 时间:
2019-10-16 11:39:07
阅读次数:
115
分治法把大问题分解成很多个同类的小问题,是一个很实用的方法,在解决一些问题的时候非常实用。 结合对时间复杂度的考虑来决定是否该使用分治算法,如果时间复杂度太大则规避使用此方法,而不是盲目使用。 然后这次第二章的练习,比如二分搜索和归并的使用,提高了我对此类算法的熟练程度,在以后的一些排序当中可以适当 ...
分类:
其他好文 时间:
2019-10-16 00:48:15
阅读次数:
99
冒泡排序、选择排序、快速排序、插入排序、希尔排序、归并排序、基数排序、堆排序。 推荐网址1:https://www.cnblogs.com/onepixel/articles/7674659.html 推荐网址2(C++):https://blog.csdn.net/opooc/article/de ...
分类:
编程语言 时间:
2019-10-15 19:11:43
阅读次数:
84
一、冒泡排序 遍历一个数组,如果发现数组中相邻的两个元素不满足要求时,就调整他们的次序,直达最后没有需要调整时说明数组有序。 二、选择排序 三、插入排序 四、希尔排序 五、归并排序 六、快速排序 ...
分类:
编程语言 时间:
2019-10-15 11:42:03
阅读次数:
85
之前说过,java1.7开始,当数组长度多余32的时候,使用Timsort排序(https://www.cnblogs.com/fbw-gxy/p/7598151.html) 然后最近开发中遇到类似下图中的代码导致报错: 一眼看过去,不就是由于compare方法没满足自反性,传递性,和对称性导致了b ...
分类:
编程语言 时间:
2019-10-15 09:25:20
阅读次数:
665