对于堆排序会涉及一些完全二叉树知识。对于待排序列{10, 2, 11, 8, 7},把它看成是一颗完全二叉树,如下图所示。 堆分为大根堆和小根堆:大根堆表示每个根节点均大于其子节点(L(i) >= L(2i) && L(i) >= L(2i + 1)),小根堆表示每个根节点均小于其子节点(L(i) ...
分类:
编程语言 时间:
2017-06-21 21:55:05
阅读次数:
245
文本处理命令:sort,uniq,join,cut,paste,split,tr,wc6.1.sort功能:文本文件排序语法:sort[OPTION]...[FILE]...sort[OPTION]...--files0-from=F常用选项:-b忽略每行前面开始的空格字符。-c检查文件是否已按顺序排序。-f忽略大小写-M根据月份比较排序,如:DECFEb-h单..
分类:
其他好文 时间:
2017-05-27 17:58:54
阅读次数:
263
计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。[1-2] 当然这是一种牺牲空间换取时间的做法,而且当O(k)>O(n*log(n))的时候 ...
分类:
编程语言 时间:
2017-05-26 10:42:57
阅读次数:
187
1.选择排序原理 a.将数组中每个元素与第一个元素比较,如果这个元素小于第一个元素,则交换这俩个元素的位置 b.循环第一条规则,找出最小元素,防于第一个位置 c.经过N-1轮比较完成排序 2.冒泡排序原理 a.逐一比较数组中相邻的两个元素,如果后面的元素小于前面的元素就互换 b.经过一轮比较,一定有 ...
分类:
编程语言 时间:
2017-05-17 10:10:15
阅读次数:
120
1.冒泡排序: what:将元素进行两两比较,大的(小的)向后排。 when:数组中有多个元素,需要进行比较排序比较的时候使用。 how:N个数字来排队,两两比较小靠前。(升序) 外层循环:N-1(控制比较的轮数) 内层循环:N-1-i(控制每轮比较的的次数,i代表外层循环变量) for examp ...
分类:
编程语言 时间:
2017-05-16 20:47:50
阅读次数:
217
Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparabl ...
分类:
其他好文 时间:
2017-05-13 19:08:08
阅读次数:
160
前几天在工作碰到一个json对象排序的问题,一直认为JavaScript不能进行对象的排序,其实并不是,今天就来总结下常见的几种简单排序: 第一类 纯数字; sort() 方法用于对数组的元素进行排序,在原数组上进行排序,不生成副本。默认安装字符编码的顺序进行排序,如果想按其他标准排序就需要提供比较 ...
分类:
编程语言 时间:
2017-04-28 16:10:51
阅读次数:
220
相同 Comparable和Comparator都是用来实现对象的比较、排序 要想对象比较、排序,都需要实现Comparable或Comparator接口 Comparable和Comparator都是Java的接口 区别 Comparator位于java.util包下,而Comparable位于j ...
分类:
编程语言 时间:
2017-04-08 19:36:00
阅读次数:
241
1 package 对象比较排序; 2 3 import java.util.Arrays; 4 5 class A implements Comparable<A>{ 6 private String name; 7 private int age; 8 public A(String name, ...
分类:
编程语言 时间:
2017-04-08 00:12:33
阅读次数:
651
将字符串数组分组,变位词组为一组 变位词:单词的字母相同位置不同 思路1: 暴力搜索,比较每个单词。 思路2: 排序,我讲每个单词的字母之和作为值去比较,排序; 同时排序时把变位词放在一起,保证相邻的单词必定为变位词 ...
分类:
其他好文 时间:
2017-04-03 22:04:08
阅读次数:
302