面试利器(二)-------插入排序(直接插入排序和希尔排序(Shell排序))
来源:互联网 发布:图片 js 点击放大 wap 编辑:程序博客网 时间:2024/05/17 01:13
(一)直接插入排序
抓住关键字---------------插入
(1)基本思想
顺序地把待排序的序列中的各个数据按其关键字的大小,插入到已排序的序列的适当位置。
(2)运行过程
1、将待排序序列的第一个数据看做一个有序序列,把第二个数据到最后一个数据当成是未排序序列。
2、从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的数据与有序序列中的某个数据相等,则将待插 入数据插入到相等数据的后面。)
(3)示例
(二)希尔排序(shell排序)
抓住关键字---------------插入,分治(前面提示过分治的理解)
希尔排序是基于插入排序的以下两点性质而提出改进方法的:
1、插入排序在对几乎已经排好序的数据操作时, 效率高, 即可以达到线性排序的效率。
2、但插入排序一般来说是低效的, 因为插入排序每次只能将数据移动一位。
(1)基本思想
先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排 序。
(2)运行过程
1、选择一个增量序列t1,t2,…,tk,其中对于i>j,有ti>tj,tk=1;(增量因子有多种取法,最简单的是t(i+1) = ti/2)
2、按增量序列个数k,对序列进行k 趟排序;
3、每趟排序,根据对应的增量ti,将待排序列分割成若干长度为m 的子序列,分别对各子表进行直接插入排序。仅增量因子为1 时,整个序列作为一个表来处理,表长度即为整个序列的长度。
(3)示例
- 面试利器(二)-------插入排序(直接插入排序和希尔排序(Shell排序))
- 插入排序(直接插入排序和希尔(shell)排序
- 算法-排序-插入排序(直接插入和希尔排序)
- 插入排序(直接插入排序和希尔排序)
- 【排序】插入排序(直接插入排序、希尔排序)
- 【排序一】插入排序(直接插入排序&&希尔排序)
- 插入排序(希尔排序、直接插入、折半插入排序)
- 排序算法(一)------直接插入排序和希尔排序
- 插入排序(直接插入排序、希尔排序)
- 插入排序(直接插入排序与希尔排序)
- 插入排序(直接插入排序 and 希尔排序)
- 插入排序(直接插入排序、希尔排序)
- 插入排序(直接插入排序,希尔排序)
- Java---插入类排序(直接插入排序,希尔排序)
- 内部排序之插入排序(直接插入排序,二分插入排序,希尔插入排序)
- 排序:插入排序(直接插入排序、Shell排序)
- 插入排序(直接插入、二分插入、希尔排序)
- 基本排序(二)插入排序(直接插入、Shell、折半)
- 并查集基本操作
- 不同表空间导入数据
- VB三种基本结构
- Excel2010条件格式结合公式和格式刷使用存在严重bug
- 北大告别过去,走向未来
- 面试利器(二)-------插入排序(直接插入排序和希尔排序(Shell排序))
- 模板渲染和参数传递.
- Centos 6.5搭建Hadoop-2.7.3分布式集群
- zookeeper伪分布安装
- ConcurrentHashMap详解
- 异平台异版本oracle数据导入导出
- navicat 关于orcale新建表空间,用户和权限分配
- HDU 6076 题解
- POJ2229 Sumsets