zoukankan      html  css  js  c++  java
  • 【Java】 大话数据结构(18) 排序算法(5) (直接插入排序)

    本文根据《大话数据结构》一书,实现了Java版的直接插入排序

    更多:数据结构与算法合集

    基本概念

      直接插入排序思路:类似扑克牌的排序过程,从左到右依次遍历,如果遇到一个数小于前一个数,则将该数插入到左边所有比自己大的数之前,也就是说,将该数前面的所有更大的数字都后移一位,空出来的位置放入该数。

    Java代码

    	public void insertSort(int[] arr) {
    		if(arr==null || arr.length<=0)
    			return;
    		for(int i=1;i<arr.length;i++) {
    			if(arr[i]<arr[i-1]) {
    				int temp=arr[i];
    				int j=i;
    				while(j>0 && temp<arr[j-1]) {
    					arr[j]=arr[j-1];
    					j--;
    				}
    				arr[j]=temp;
    			}
    		}
    	}
    

      

    复杂度分析

       空间复杂度:O(1)

      时间复杂度:O(n^2)

    更多:数据结构与算法合集

  • 相关阅读:
    @atcoder
    @loj
    @atcoder
    @gym
    @codeforces
    @atcoder
    @bzoj
    @loj
    Kafka常用命令
    Kafka入门介绍
  • 原文地址:https://www.cnblogs.com/yongh/p/10058682.html
Copyright © 2011-2022 走看看