【JAVA】排序算法学习-直接插入排序

直接插入排序分为两部分:有序区、无序区
排序方法:从无序区中取一个数,再到有序区中进行排列

直接插入排序

例子:5 8 4 7 1
第1趟: [5] 8 4 7 1
第2趟: [5 8] 4 7 1
第3趟: [4 5 8] 7 1
第4趟: [4 5 7 8] 1
第5趟: [1 4 5 7 8]

public class InsertSort {

    public static void main(String[] args) {
        int[] a = {7, 11, 8, 9, 5, 4, 100, 76};
        for (int i = 0; i < a.length; i++) {
            // j<i为有序区
            for (int j = 0; j < i; j++) {
                // 在有序区逐一判断大小,交换位置
                if (a[i] < a[j]) {
                    int temp = a[i];
                    a[i] = a[j];
                    a[j] = temp;
                }
            }
        }
        System.out.println("排序后:");
        for (int o : a) {
            System.out.print(o+" ");
        }
    }

}

直接插入排序时间复杂度:O(N*N)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 排序的基本概念 在计算机程序开发过程中,经常需要一组数据元素(或记录)按某个关键字进行排序,排序完成的序列可用于快...
    Jack921阅读 5,344评论 1 4
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 10,585评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 9,084评论 0 15
  • 概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的...
    Luc_阅读 6,763评论 0 35
  • 一、 单项选择题(共71题) 对n个元素的序列进行冒泡排序时,最少的比较次数是( )。A. n ...
    貝影阅读 13,030评论 0 10