总结下自己对插入排序的理解。
插入排序算法思想:每趟将一个元素,按照其关键字的大小插入到它前面已经排序的子序列中,依此重复,直到插入全部元素。
插入排序包括:直接插入排序、二分插入排序以及希尔排序...
分类:
编程语言 时间:
2016-11-21 02:10:55
阅读次数:
211
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Sort{ ...
分类:
编程语言 时间:
2016-11-20 11:26:40
阅读次数:
229
最近一段时间学习了算法导论第二版书的第一部分和第二部分的内容,自己编写了其中排序相关的几乎全部算法,包括冒泡排序(bubble sort)、选择排序( selection sort)、插入排序(insertion sort)、希尔排序(shell sort)、归并排序(merge sort)、快速排... ...
分类:
编程语言 时间:
2016-11-19 02:58:28
阅读次数:
294
基本思想 每次将一个待排序的记录,按其关键字大小,插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。 分类 根据寻找插入位置方法分为 直接插入排序 折半(二分)插入排序 希尔插入排序 直接插入排序 基本思想 当插入第i(i≥1)个对象时,前面的V[0],V[1],…,V[i?1]已 ...
分类:
编程语言 时间:
2016-11-17 23:17:33
阅读次数:
229
选择排序与冒泡排序的特点与区别 ++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++++ 陌陌说:选择排序(包含shaker排序/堆排序)和冒泡排序都属于交换排序的一种 ...
分类:
编程语言 时间:
2016-11-15 14:32:33
阅读次数:
174
基本思想 希尔排序是基于插入排序的,又叫缩小增量排序。 在插入排序中,标记符左边的元素是有序的,右边的是没有排过序的,这个算法取出标记符所指向的数据,存入一个临时变量,接着,在左边有序的数组中找到临时变量应该插入的位置,然后将插入位置之后的元素依次后移一位,最后插入临时变量中的数据。 试想,假如有一 ...
分类:
编程语言 时间:
2016-11-09 11:45:50
阅读次数:
204
排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序有可以分为以下几类: (1)、插入排序:直接插入排序、二分法插入排序、希尔排序。 (2)、选择排序:简单选择排序、堆排序。 (3)、 ...
分类:
编程语言 时间:
2016-10-31 13:07:20
阅读次数:
352
2016-10-25 16:51:49 首先,要明白希尔排序法是什么。它是一种改进版的直接插入法,它是将整个无序列分割成若干小的子序列分别进行插入排序的方法。 这就和直接插入法非常类似了。因此其也有另一种形式。 发现两次while循环后,a[0]复制给谁的异同了吗? 两个不一样,但是是为什么呢? ...
分类:
编程语言 时间:
2016-10-25 23:52:52
阅读次数:
220
数据结构和算法对一个程序来说是至关重要的,现在介绍一下几种算法,在项目中较为常用的算法有:冒泡排序,简单选择排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序等7中算法。现在介绍选择排序算法,希尔排序算法,快速排序算法。(1).选择排序算法:通过n-i次关键..
分类:
编程语言 时间:
2016-10-25 20:18:03
阅读次数:
271
感谢太原理工大学的算法演示:http://www.tyut.edu.cn/kecheng1/site01/suanfayanshi/shell_sort.asp 在希尔排序中主要是要明白在最底层是通过一次又一次的插入排序来实现的。每次都看成是h(k)个独立的数组,进行插入排序,然后循环h(k-1), ...
分类:
编程语言 时间:
2016-10-19 13:24:32
阅读次数:
149