插入排序简述

  插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据。

    第一个元素是有序队列,从第二个元素开始向有序队列中插入,插入完成后将第三个元素向有序队列中插入,依次进行,直到将最后一个元素插入完毕。

  在将元素插入到有序队列中,要将这个元素与有序队列的元素依次比较,如果小于有序队列的某个元素,将其插入到该元素的前面,否则不做操作。依次比较完毕,没有比其大的,就将其放在有序队列的末尾。

  图例介绍:

代码:

插入排序类

package com.dxx.order;

public class InsertSort {
private int arrs[]; public InsertSort(int[] arrs) {
super();
this.arrs = arrs;
} public void sortArrs(){
int len = arrs.length;
int temp = 0;
//进行len-1次循环,每次循环都将下标为i的元素插入到它前面已经排好序的队列中
for(int i=1;i<len;i++){
//进行i次循环,每次循环都将下标为i的元素与下标为j的元素比较,找到比它小的元素,然后插入到那个元素前面,如果一直没有比它小的元素,就不做操作
for(int j=0;j<i;j++){
if(arrs[j]>arrs[i]){
temp = arrs[i];
for(int k = i;k>j;k--){
arrs[i] = arrs[i-1];
}
arrs[j] = temp;
}
//另一种插入算法
public void sortArrs2(){
int len = arrs.length;
int temp = 0;
//进行len-1次循环,每次循环都将下标为i的元素插入到它前面已经排好序的队列中
for(int i=1;i<len;i++){
if(arrs[i]<arrs[i-1]){
temp = arrs[i];
while( i>0 && temp<arrs[i-1]){
arrs[i]=arrs[i-1];
i--;
}
arrs[i] = temp; }
}
}

            }
}
}

public void printArrs(){
for(int i :arrs){
System.out.print(i + " ");
}
System.out.println();
} }

主程序类:

package com.dxx.order;

public class MainTest {

    public static void main(String[] args) {
int arrs[] = {1,3,2,5,4,8,6,7};
InsertSort insertSort = new InsertSort(arrs);
insertSort.printArrs();
insertSort.sortArrs();
insertSort.printArrs(); }
}

插入排序java的更多相关文章

  1. 基本排序算法——插入排序java实现

    插入排序过程: 在初始状态下,第一个元素是排序的,在最终状态下,作为一组数据时排序的. 代码如下;eclipse4.3实现 package sort.basic; import java.util.A ...

  2. 插入排序-java

    排序-插入排序 基本思想:将待排序表看作左右两部分,其中左边为有序区,右边为无序区, 整个排序过程就是将右边无序区中的元素逐个插入到左边的有序区中,以构成新的有序区. 平均时间:O(n2) 最好情况: ...

  3. 插入排序Java版

    package dataStructureAlgorithmReview.day01; import java.util.Arrays; /** * 插入排序 * @author shundong * ...

  4. 排序算法之直接插入排序Java实现

    排序算法之直接插入排序 舞蹈演示排序: 冒泡排序: http://t.cn/hrf58M 希尔排序:http://t.cn/hrosvb  选择排序:http://t.cn/hros6e  插入排序: ...

  5. 插入排序java代码

    /** * 插入排序 * * 原理:从数组中取出一个值插入到一个左边已经排好序的数组片段中 * * @param a * @return */ public long[] InsertSort(lon ...

  6. 直接插入排序---java实现

    思路:遍历无序的原数组,把第i个的后一个即i+1去与前面的i个逐个比较... 解法一: package com.sheepmu.text; import java.util.Arrays; /* * ...

  7. 插入排序(Java实现)

    直接插入排序 public class InsertionSort { public static <T extends Comparable<? super T>> void ...

  8. 数据结构排序算法插入排序Java实现

    public class InsertDemo { public static void main(String args[]) { int[] sort ={4,2,1,3,6,5,9,8,10,7 ...

  9. 插入排序——Java实现

    一.排序思想 从数组第一个元素开始(0下标),该元素可以认为已经被排序: 取出待排序列中第一个元素,然后从“有序”序列中,从后往前扫描: 如果该元素(有序序列)大于待插入元素(待排序列),将该元素后移 ...

随机推荐

  1. QUIC简单介绍

    QUIC,即Quick UDP Internet Connection,类似于SPDY,相同也是由Google公司在现有已存协议之上进行了扩展设计,而旨在降低网络延迟.之前我曾介绍过SPDY的相关信息 ...

  2. [置顶] 页面缓存,cache,设置缓存过期时间,OutputCache

    页面缓存 方法一: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //缓存有数据 if (Cach ...

  3. 优酷m3u8视频源地址获取失败

    昨天和今天上午,优酷站点视频全然没有办法播放,可是我是获取的优酷视频的视频原地址,所以app还是能够正常播放而且有下载功能.今天下午開始,优酷视频网页能够訪问了,可是视频原地址却不在了.我全部的app ...

  4. 探索Oracle之数据库升级七 11gR2 to 12c 升级完毕后插入PDB

    探索Oracle之数据库升级七 11gR2 to 12c 升级完毕后插入PDB 前言:        从Oracle 12c開始,引入了容器数据库的概念,能够实现数据库插拔操作,例如以下图: 如今我们 ...

  5. python 学习笔记 10 -- 正則表達式

    零.引言 在<Dive into Python>(深入python)中,第七章介绍正則表達式,开篇非常好的引出了正則表達式,以下借用一下:我们都知道python中字符串也有比較简单的方法, ...

  6. 全然符合package.json在CommonJS中的规范

    众所周知,package.json是CommonJS规定的用来描写叙述包的文件,全然符合规范的package.json文件应该含有一下字段. name:包的名称,必须是唯一的.由小写英文字母.数字和下 ...

  7. 2014鞍山现场赛C题HDU5072(素筛+容斥原理)

    Coprime Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total ...

  8. Linux mysql 数据库忘记root密码

    1.修改MySQL的登录设置: # vi /etc/my.cnf 1在[mysqld]的段中加上一句:skip-grant-tables 保存并且退出vi. 2.重新启动mysqld # /etc/i ...

  9. 登录oracle时,scott is locked (帐户被锁定) 的解决方法

    登录Oracle时,用scott/tiger  通常此时会报一个错误: scott is locked (帐户被锁定) 现在就要用超级用户system将scott帐户进行解锁. cmd->sql ...

  10. Lucene全文检索的【增、删、改、查】 实例

    创建索引 Lucene在进行创建索引时,根据前面一篇博客,已经讲完了大体的流程,这里再简单说下: Directory directory = FSDirectory.open("/tmp/t ...