最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java經(jīng)典排序算法之插入排序代碼實例

 更新時間:2023年10月20日 11:09:04   作者:惡魔青葉  
這篇文章主要介紹了Java經(jīng)典排序算法之插入排序代碼實例,插入排序是一種最簡單直觀的排序算法,它的工作原理是通過構(gòu)建有序序列,對于未排序數(shù)據(jù),在已排序序列中從后向前掃描,找到相應位置并插入,需要的朋友可以參考下

1.簡介

插入排序是一種最簡單直觀的排序算法,它的工作原理是通過構(gòu)建有序序列,對于未排序數(shù)據(jù),在已排序序列中從后向前掃描,找到相應位置并插入。

插入排序的時間復雜度是O(n^2) ,空間復雜度 是O(1)。 將第一個看成一個有序數(shù)列,將后面的數(shù)跟前面的數(shù)比較,大的就往后移

第一趟排序后:得到一個有序數(shù)列,其大小為2

第二趟排序后:得到一個有序數(shù)列,其大小為3

第三趟排序后:得到一個有序數(shù)列,其大小為4 …

每一趟插入排序,都可以將一個無序值插入一個有序數(shù)列,直至全部值有序

實現(xiàn)思路:

  • 第一步、將第一待排序序列第一個元素看做一個有序序列,把第二個元素到最后一個元素當成是未排序序列。
  • 第二步、從頭到尾依次掃描未排序序列,將掃描到的每個元素插入有序序列的適當位置。(如果待插入的元素與有序序列中的某個元素相等,則將待插入元素插入到相等元素的后面。所以插入排序是穩(wěn)定的排序)

2.圖解流程

在這里插入圖片描述

3.代碼實現(xiàn)

package com.znzz.insertSort;
import java.util.Arrays;
public class InsertSort {
    public static void main(String[] args) {
        inserrtSort(new int[]{6,2,0,2,4,7,9,10});
    }
    public static void inserrtSort(int[] arr) {
        int value;  //待插入元素
        int index;  //待插入元素的前一個元素的索引
        for (int i = 1; i < arr.length; i++) {
            //這里i=1,默認第一個元素是有序的,
            //循環(huán)條件是小于數(shù)組長度
            value = arr[i];
            index = i - 1;   //前一個元素
            while (index >= 0 && value < arr[index]){
                //需要保證index合法
                //每當前面的元素比待插入元素大,就向后移動
                arr[index + 1] = arr[index];
                index--;
        }
        //到這里表示退出循環(huán),說明找到了待插入的位置,
        arr[index + 1] = value;
    }
        System.out.println(Arrays.toString(arr));
}
}

到此這篇關(guān)于Java經(jīng)典排序算法之插入排序代碼實例的文章就介紹到這了,更多相關(guān)Java插入排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot實現(xiàn)固定和動態(tài)定時任務的三種方法

    SpringBoot實現(xiàn)固定和動態(tài)定時任務的三種方法

    定時器是我們項目中經(jīng)常會用到的,本文主要介紹了SpringBoot實現(xiàn)固定和動態(tài)定時任務的三種方法,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • 淺談JAVA工作流的優(yōu)雅實現(xiàn)方式

    淺談JAVA工作流的優(yōu)雅實現(xiàn)方式

    這篇文章主要介紹了淺談JAVA工作流的優(yōu)雅實現(xiàn)方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • IDEA中如何查找jar包之間的依賴關(guān)系并忽略依賴的某個包

    IDEA中如何查找jar包之間的依賴關(guān)系并忽略依賴的某個包

    這篇文章主要介紹了IDEA中如何查找jar包之間的依賴關(guān)系并忽略依賴的某個包?本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Java8使用Function讀取文件

    Java8使用Function讀取文件

    這篇文章主要為大家詳細介紹了Java8如何使用Function讀取文件,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以參考一下
    2024-12-12
  • GitLab+Jenkins+Maven+Tomcat?實現(xiàn)自動集成、打包、部署

    GitLab+Jenkins+Maven+Tomcat?實現(xiàn)自動集成、打包、部署

    本文主要介紹了GitLab?+?Jenkins?+?Maven?+?Tomcat?實現(xiàn)自動集成、打包、部署,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Windows下Java調(diào)用可執(zhí)行文件代碼實例

    Windows下Java調(diào)用可執(zhí)行文件代碼實例

    這篇文章主要介紹了Windows下Java調(diào)用可執(zhí)行文件代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • java map遍歷的四種方法總結(jié)

    java map遍歷的四種方法總結(jié)

    以下是我整理的關(guān)于java中map的遍歷的四種方法。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • SpringBoot項目如何打war包問題詳解

    SpringBoot項目如何打war包問題詳解

    傳統(tǒng)的部署方式:將項目打成war包,放入tomcat的webapps目錄下面,啟動tomcat,即可訪問.文中有非常詳細的介紹,對正在學習springboot的小伙伴很有幫助,需要的朋友可以參考下
    2021-05-05
  • Spring?Boot+微信小程序開發(fā)平臺保存微信登錄者的個人信息

    Spring?Boot+微信小程序開發(fā)平臺保存微信登錄者的個人信息

    這篇文章主要介紹了Spring?Boot+微信小程序開發(fā)平臺保存微信登錄者的個人信息,本文主要介紹?wx.login和wx.getProfile接口,因篇幅所限,不能對其它接口做詳細介紹?,有興趣者可以查閱官方文檔
    2022-05-05
  • Mybatis-plus在項目中的簡單應用

    Mybatis-plus在項目中的簡單應用

    Mybatis-plus是Spring框架中OOM的一大利器,其簡單易用參考官網(wǎng)文檔即可很快上手,本文主要介紹了邏輯刪除,自動填充,分頁插件等的簡單使用,感興趣的可以了解一下
    2021-07-07

最新評論

抚顺县| 漳平市| 建始县| 清徐县| 罗源县| 奈曼旗| 凤山县| 新和县| 濮阳市| 北海市| 东乡族自治县| 昌都县| 宁波市| 皮山县| 景德镇市| 泗阳县| 达拉特旗| 新化县| 海口市| 岑溪市| 雷波县| 淮安市| 旌德县| 青神县| 恩施市| 扶余县| 顺义区| 改则县| 宁化县| 城固县| 娄底市| 大洼县| 崇州市| 天台县| 两当县| 涟源市| 泾源县| 曲周县| 安陆市| 桑日县| 育儿|