java箱排序算法
插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。
本节介绍两种插入排序方法:直接插入排序和希尔排序。
直接插入排序基本思想
1、基本思想
假设待排序的记录存放在数组R[1..n]中。初始时,R[1]自成1个有序区,无序区为R[2..n]。从i=2起直至i=n为止,依次将R[i]插入当前的有序区R[1..i-1]中,生成含n个记录的有序区。
2、第i-1趟直接插入排序:
通常将一个记录R[i](i=2,3,…,n-1)插入到当前的有序区,使得插入后仍保证该区间里的记录是按关键字有序的操作称第i-1趟直接插入排序。
排序过程的某一中间时刻,R被划分成两个子区间R[1..i-1](已排好序的有序区)和R[i..n](当前未排序的部分,可称无序区)。
直接插入排序的基本操作是将当前无序区的第1个记录R[i]插人到有序区R[1..i-1]中适当的位置上,使R[1..i]变为新的有序区。因为这种方法每次使有序区增加1个记录,通常称增量法。
插入排序与打扑克时整理手上的牌非常类似。摸来的第1张牌无须整理,此后每次从桌上的牌(无序区)中摸最上面的1张并插入左手的牌(有序区)中正确的位置上。为了找到这个正确的位置,须自左向右(或自右向左)将摸来的牌与左手中已有的牌逐一比较。
一趟直接插入排序方法
1.简单方法
首先在当前有序区R[1..i-1]中查找R[i]的正确插入位置k(1≤k≤i-1);然后将R[k..i-1]中的记录均后移一个位置,腾出k位置上的空间插入R[i]。
注意:
若R[i]的关键字大于等于R[1..i-1]中所有记录的关键字,则R[i]就是插入原位置。
排序、希尔排序、归并排序、 冒泡排序、选择排序、快速排序、插入排序、希尔排序、归并排序、堆排序 Java 排序算法 1)分类: 1)插入排序(直接插入排序、希尔排序...
Java 排序算法 1)分类: 1)插入排序(直接插入排序、希尔排序) 2)交换排序(冒泡排序、快速排序) 3)选择排序(直接选择排序、堆排序) 4)归并排序 5)分配排序(箱...
Java之插入排序方法详解_IT/计算机_专业资料。Java 之插入排序方法详解 插入排序...图 1 对 4 个元素进行插入排序 在下面的插入排序算法中, 为了写程序方便我们...
package com.softeem.jbs.lesson4; import java.util.Random; /** * 排序测试类 * * 排序算法的分类如下: * 1.插入排序(直接插入排package com.softeem....
java排序算法经典解析_IT/计算机_专业资料。java排序算法经典解析冒泡...插入排序方法分直接插入排序和折半插入排序两种,这里只介绍直接插入排序,折半插入...
Java实现的常见排序算法 6页 1下载券 几种排序算法(插入,冒泡... 2页 1下载...插入排序(直接插入排序 插入排序 直接插入排序): 直接插入排序思想: Summary by...
java10种排序算法总结_计算机软件及应用_IT/计算机_专业资料。排序算法有很多,所以...堆排序与直接插入排序的区别: 直接选择排序中,为了从 R[1..n]中选出关键字...
Java 算法起步之插入排序 广州疯狂软件学院拥有三大课程体系包括:Java 课程,Android 课程,iOS 课程,疯狂软件年终钜惠,报名 Java 就业班,免费赠送基础班,名额有限,本...
排序算法原理与实现(java)_计算机软件及应用_IT/计算机_专业资料。Java 程序员必知...对每组中全部元素进行直接插入排序, 然后再用一个较小的 增量(d/2)对它进行...
(直接插入排序,折半插入排序,Shell 排序) 归并排序 桶式排序 基数排序 Java 排序算法(二):直接选择排序 直接选择排序的基本操作就是每一趟从待排序的数据元素中...

我要评论