最近几天在研究排序算法,看了很多博客,发现网上有的文章中对排序算法解释的并不是很透彻,而且有很多代码都是错误的,例如有的文章中在“桶排序”算法中对每个桶进行排序直接使用了Collection.sort()函数,这样虽然能达到效果,但对于算法研究来讲是不可以的。所以我根据这几天看的文章,整理了一个较为完整的排序算法总结,本文中的所有算法均有JAVA实现,经本人调试无误后才发出,如有错误,请各位前辈指
分类:
编程语言 时间:
2018-04-26 12:21:50
阅读次数:
142
当有一个List列表是无序的,List中的数据有parentid进行关联,通过java排序成两种排序类型: 所用的测试列表最顶级无parentid,若为特殊值,修改下判断方法即可。 第一种排序:按照树结构进行排序 排序前:122,13,121,1,131,12,132...无序的[TestSort ...
分类:
编程语言 时间:
2018-04-12 23:25:42
阅读次数:
1573
Java排序算法:冒泡排序 //创建数组并赋值
int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,
分类:
编程语言 时间:
2018-03-29 19:11:10
阅读次数:
144
(一)list和数组 ①List默认排序代码: ②:数组: (二)自定义排序: ①实现Comparable接口,类内设比较项。 ②实现Comparator接口,类外设比较项。 ...
分类:
编程语言 时间:
2018-03-24 22:34:45
阅读次数:
225
java排序算法(六):直接插入排序 直接插入排序的基本操作就是将待的数据元素按其关键字的大小插入到前面的有序序列中 直接插入排序时间效率并不高,如果在最坏的情况下,所有元素的比较次数的总和为(0+1..n-1)= o(n^2).其他情况下也要考虑移动元素的次数。故时间复杂度是o(n^2) 直接插入 ...
分类:
编程语言 时间:
2018-02-26 17:35:12
阅读次数:
219
java排序算法(四):冒泡排序 冒泡排序是计算机的一种排序方法,它的时间复杂度是o(n^2),虽然不及堆排序、快速排序o(nlogn,底数为2).但是有两个优点 1、编程复杂度很低。很容易写出代码 2、具有稳定性,这里的稳定性是指原序列中相同元素的相对顺序仍然保持到排序后的顺序。而堆排序和快速排序 ...
分类:
编程语言 时间:
2018-02-26 16:18:15
阅读次数:
191
java排序算法(二) 直接选择排序 直接选择排序排序的基本操作就是每一趟从待排序的数据元素中选出最小的(或最大的)一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完,它需要经过n-1趟比较,算法不稳定,o(1)的额外的空间,比较的时间复杂度是o(n^2),交换的时间复杂度是o(n ...
分类:
编程语言 时间:
2018-02-26 13:36:16
阅读次数:
134
一、概述: 上篇博客介绍了常见简单算法:冒泡排序、选择排序和插入排序。本文介绍高级排序算法:快速排序和归并排序。在开始介绍算法之前,首先介绍高级算法所需要的基础知识:划分、递归,并顺带介绍二分查找算法。 二、划分: 划分是快速排序的前提,即把数据分为两组,大于特定值的数据在一组,小于特定值的数据在另 ...
分类:
编程语言 时间:
2018-01-25 00:28:13
阅读次数:
201
代码: 冒泡排序的时间复杂度:理想O(n),平均O(n^2),助记口决:外管轮询内管排 ...
分类:
编程语言 时间:
2018-01-24 22:05:29
阅读次数:
192
代码: 冒泡排序的时间复杂度位O(n^2),但是理想情况下为O(n),记忆口诀:外管轮流内管排 ...
分类:
编程语言 时间:
2018-01-24 15:29:53
阅读次数:
145