基本思想 折半插入排序是对直接插入排序的简单改进,对于直接插入排序而言,当第i-1趟需要将第i个元素插入前面的0~i-1个元素序列中时,总是需要从i-1个元素开始,逐个比较每个元素,直到找到它的位置。这显然没有利用前面0~i-1个元素已经有序这个特点,而折半插入排序则改进了这一点。 对于折半插入排序而言,当需要插入第i个元素时,它不会逐个进行比较每个元素,而是: (1)计算0~i-1索引的中...
分类:
其他好文 时间:
2014-08-29 20:10:18
阅读次数:
180
基本思想 插入排序(Insertion Sort)基本思想是:依次将待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。具体来说,对于一个有n个数据的序列,排序需要进行n-1趟插入操作。 形象来看,每一趟插入操作就像大家玩扑克牌的摸牌阶段,我们使用左手拿着已经摸到并排好大小的牌,右手从牌堆里边摸牌,每摸一张牌就将其插入到左手理顺的牌中,插入后保持其大...
分类:
其他好文 时间:
2014-08-29 14:41:08
阅读次数:
198
java的排序算法,直接排序,插入排序,交换排序,归并排序...
分类:
编程语言 时间:
2014-08-15 16:06:09
阅读次数:
348
import javax.mail.Part;
/**
* 顺序查找
*
* @author 曾修建
* @version 创建时间:2014-7-30 下午04:15:10
*/
public class SequentialSearch {
public static void main(String[] args) {
Integer[] a...
分类:
其他好文 时间:
2014-08-01 00:07:30
阅读次数:
295
TimSort算法是一种起源于归并排序和插入排序的混合排序算法,设计初衷是为了在真实世界中的各种数据中可以有较好的性能。该算法最初是由Tim Peters于2002年在Python语言中提出的。 TimSort 是一个归并排序做了大量优化的版本。对归并排序排在已经反向排好序的输入时表现O(n2)的特点做了特别优化。对已经正向排好序的输入减少回溯。对两种情况混合(一会升序,一会降序)的输入处理比较...
分类:
编程语言 时间:
2014-07-30 14:49:53
阅读次数:
805
前面写了js的排序实现,总得玩玩java的哈。同样,冒泡、选择、快速(这三个之前实现过也写过文章)、堆排序,然后做比较。主要遇到的难点:- -||想轻松点写个封装计时的逻辑,不想每调用一个排序就要写一个计时代码。想想,还是javascript写起来方便;java的话,我想到的方法是写一个抽象类:抽象...
分类:
编程语言 时间:
2014-06-22 12:28:04
阅读次数:
218
在前几个章节中使用了Comparable作为比较函数。比如对于字符串,就是按字母表的顺序进行排序。有时候想要换一种比较方式,该怎么实现呢?
在Java中可以使用Comparator比较器,以下代码展示了字符串之间不同的比较方式。
String[] a;
...
Arrays.sort();
...
Arrays.sort(a, String.CASE_INSENSITI...
分类:
其他好文 时间:
2014-06-08 15:37:08
阅读次数:
201
java实现排序的一些方法,来自:http://www.javaeye.com/topic/548520 1
package sort; 2 3 import java.util.Random; 4 5 /** 6 * 排序测试类 7 * 8 *...
分类:
编程语言 时间:
2014-05-07 19:13:32
阅读次数:
448
面试也是一门学问,在面试之前做好充分的准备则是成功的必须条件,而程序员在代码面试时,常会遇到编写算法的相关问题,比如排序、二叉树遍历等等。
在程序员的职业生涯中,算法亦算是一门基础课程,尤其是在面试的时候,很多公司都会让程序员编写一些算法实例,例如快速排序、二叉树查找等等。
本文总结了程序员在代码面试中最常遇到的10大算法类型,想要真正了解这些算法的原理,还需程序员们花些功夫。...
分类:
编程语言 时间:
2014-04-30 22:11:39
阅读次数:
356