美文网首页大数据
JAVA插入排序

JAVA插入排序

作者: 林123_d6c9 | 来源:发表于2018-08-13 09:07 被阅读99次

一,插入排序介绍

 插入排序是基于比较的排序。所谓的基于比较,就是通过比较数组中的元素,看谁大谁小,根据结果来调整元素的位置。

因此,对于这类排序,就有两种基本的操作:①比较操作; ②交换操作

其中,对于交换操作,可以优化成移动操作,即不直接进行两个元素的交换,还是用一个枢轴元素(tmp)将当前元素先保存起来,然后执行移动操作,待确定了最终位置后,再将当前元素放入合适的位置。(下面的插入排序就用到了这个技巧)--因为,交换操作需要三次赋值,而移动操作只需要一次赋值

有些排序算法,比较次数比较多,而移动次数比较少,而有些则相反。比如,归并排序和快速排序,前者移动次数比较多,而后者比较次数比较多。

这里主要介绍插入排序

二,插入排序算法分析

插入排序算法有种递归的思想在里面,它由N-1趟排序组成。初始时,只考虑数组下标0处的元素,只有一个元素,显然是有序的。

然后第一趟 对下标 1 处的元素进行排序,保证数组[0,1]上的元素有序;

第二趟 对下标 2 处的元素进行排序,保证数组[0,2]上的元素有序;

.....

.....

第N-1趟对下标 N-1 处的元素进行排序,保证数组[0,N-1]上的元素有序,也就是整个数组有序了。

它的递归思想就体现在:当对位置 i 处的元素进行排序时,[0,i-1]上的元素一定是已经有序的了。   排序前:    6    3    3    5    6    3    1    0    6    4

i = 0:    6

i = 1:    3    6

i = 2:    3    3    6

i = 3:    3    3    5    6

i = 4:    3    3    5    6    6

i = 5:    3    3    3    5    6    6

i = 6:    1    3    3    3    5    6    6

i = 7:    0    1    3    3    3    5    6    6

i = 8:    0    1    3    3    3    5    6    6    6

i = 9:    0    1    3    3    3    4    5    6    6    6

排序后:    0    1    3    3    3    4    5    6    6    6

三,插入排序算法实现

/**

*插入排序

*/

private  static  int[] insertSort(int[]arr){

if(arr == null|| arr.length < 2){

    return arr;

}

for(inti=1;i<arr.length;i++);

for(intj=i;j>0;j--){

                if(arr[j]<arr[j-1]){

                inttemp=arr[j];

                arr[j]=arr[j-1];

                arr[j-1]=temp;

        }else{

                break;

}

}

}

return  arr;

}

相关文章

  • java快速学习排序---插入排序

    1.java实现插入排序 (1)、图解插入排序 (2)、插入排序的思想 (3)、插入排序的代码实现

  • 常见排序的java实现

    常见排序的java实现 常见排序java实现 插入排序(二分插入排序) 希尔排序 快速排序(三数中值快排) 冒泡排...

  • (306)排序-java实现的选择/插入/希尔排序

    引言 用java实现的选择排序、插入排序、希尔排序。 代码(java) 运行结果

  • 数据结构&算法(一)

    一、Java实现快速排序算法 二、Java实现折半插入排序算法 三、Java实现冒泡排序算法

  • java 实现排序算法之「插入排序」

    java 实现排序算法系列 这是 Java 实现排序算法的第三篇文章——插入排序算法。插入排序可以说成是「一类」简...

  • Java 实现插入排序

    本文介绍插入排序原理及 Java 语言实现。 目录 插入排序原理 代码实现版本一版本二单元测试 插入排序原理 从第...

  • JAVA插入排序

    一,插入排序介绍 插入排序是基于比较的排序。所谓的基于比较,就是通过比较数组中的元素,看谁大谁小,根据结果来调整元...

  • java 插入排序

    插入排序原理很简单,将一组数据分成两组,我分别将其称为有序组与待插入组。每次从待插入组中取出一个元素,与有序组的元...

  • java插入排序

    public class Demo4 { public static void main(String[] arg...

  • 插入排序(Java)

    插入排序,做个很形象的比喻,插入排序就是打扑克抓牌一样,每次都把牌插入有序的手牌中,使之继续保持有序。插入排序的...

网友评论

本文标题:JAVA插入排序

本文链接:https://www.haomeiwen.com/subject/iqusbftx.html