插入排序(InsertionSort )Java版

2021/4/10 22:15:01

本文主要是介绍插入排序(InsertionSort )Java版,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

插入排序:
  将数据逐个采用插入的方式进行排序,这是一种简单直观稳定的排序算法
插入排序原理
    采用链表
       从第一个元素开始,该链表可以被认为已经部分排序),每次迭代时,从输入数据中移除一个元素,并原地将其插入到已排好序的链表中。
       插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。
重复直到所有输入数据插入完为止。
    采用数组
        1.把所有的元素分为两组,已经排序的和未排序的组;
        2.找到未排序的组中的第一个元素,向已经排序的组中进行插入;
        3.倒叙遍历已经排序的元素,依次和待插入的元素进行比较,直到找到一个元素小于等于待插入元素,那么就把待插入元素放到这个位置,其他的元素向后移动一位;
插入排序时间复杂度:n^2
插入排序实现步骤
//代码实现

import java.util.Arrays;

public class InsertionSort{
    public static void main(String[] args) {
        //创建数组
        Integer[] arr = {2, 5, 10, 1, 3, 7, 4, 6, 9, 8,1};
        int temp;
        for (int i = 1; i < arr.length; i++) {
            //当前元素为arr[i],依次和i前面的元素比较,找到小于等于arr[i]的元素
            for (int j = i; j > 0; j--) {
                if (arr[j - 1] > =arr[j]) {
                    //数据交换
                    temp = arr[j];
                    arr[j] = arr[j - 1];
                    arr[j - 1] = temp;
                } else {
                    //结束
                    break;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }
}


这篇关于插入排序(InsertionSort )Java版的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程