**插入排序 InsertionSort文章内含源码**

简介: **插入排序 InsertionSort文章内含源码**

不停的往一个数组中添加数字(新来的数字),数组有序,新数字进入数组后会和右边判断大小,比他小则往左移一位,移后再进行判断,知道新来的数字 >= 左边的数字停止判断,数组再次有序

数组为   147                                 **有序**
添加一个数字 2
2 < 7,和7交换位置    1427
2 < 4,和4交换位置    1247
2 > 1,停止交换的判断       数组为  1247        **数组再次有序**
添加一个新数字 5           此时数组为 1247      **有序**
5 < 7,和7 交换位置    12457
5 > 4,停止交换的判断        数组为12457        **再次有序**

代码: InsertionSort.java

package cn.Text;
public class InsertionSort {
    public static void insertsort(int[] arr) {
        if (arr==null || arr.length<2){
            return;
        }
        //0~0有序  0~1有序   0~2有序  0~3有序  ...   0~n-1 有序     索引
        for (int i = 1; i < arr.length; i++) {
            while(i-1>=0 && arr[i-1]>arr[i]){
                Swap(arr,i-1,i);
                i--;
            }
        }
//        for (int i = 1; i < arr.length; i++) {
//            int CurrentNumberIndex=i;
//            while(CurrentNumberIndex-1>=0 && arr[CurrentNumberIndex-1]>arr[CurrentNumberIndex]){
//                Swap(arr,CurrentNumberIndex-1,CurrentNumberIndex);
//                CurrentNumberIndex--;
//            }
//        }
    }
    public static void Swap(int [] arr ,int i,int j){
        int tmp=arr[j];
        arr[j]=arr[i];
        arr[i]=tmp;
    }
    public static void PrintArray(int [] arr){
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
        System.out.println();
    }
    public static void main(String[] args) {
        int[] arr={5,9,13,22,4,56,3};
        PrintArray(arr);
        insertsort(arr);
        PrintArray(arr);
    }
}

image.png

目录
相关文章
|
1月前
|
算法 搜索推荐
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
本文介绍了冒泡排序、选择排序和插入排序三种基础排序算法的原理、实现代码和测试结果。
17 0
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
|
搜索推荐 算法 测试技术
八大排序超详解(动图+源码)
排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。
|
6月前
|
搜索推荐 算法
常见排序算法以及冒泡排序的基础使用方法
常见排序算法以及冒泡排序的基础使用方法
43 0
|
算法
冒泡排序(附图详解)
冒泡排序(附图详解)
101 0
|
存储 搜索推荐 算法
八大排序[超级详细](动图+代码优化)这一篇文章就够了(下)
八大排序[超级详细](动图+代码优化)这一篇文章就够了(下)
94 0
冒泡排序(简练版)(一看就懂)(对比选择排序)
冒泡排序(简练版)(一看就懂)(对比选择排序)
数据结构之排序【冒泡排序和快速排序之一的实现及分析】内含动态演示图
数据结构之排序【冒泡排序和快速排序之一的实现及分析】内含动态演示图
|
搜索推荐 算法
八大排序[超级详细](动图+代码优化)这一篇文章就够了(上)
八大排序[超级详细](动图+代码优化)这一篇文章就够了(上)
83 0
|
存储 算法 搜索推荐
八大排序[超级详细](动图+代码优化)这一篇文章就够了(中)
八大排序[超级详细](动图+代码优化)这一篇文章就够了(中)
91 0