欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java數(shù)據(jù)結(jié)構(gòu)之插入排序

 更新時(shí)間:2017年11月09日 16:40:09   作者:阿木俠  
這篇文章主要為大家詳細(xì)介紹了java數(shù)據(jù)結(jié)構(gòu)之插入排序的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

插入排序就是把當(dāng)前待排序的元素插入到一個(gè)已經(jīng)排好序的列表里面。 一個(gè)非常形象的例子就是右手抓取一張撲克牌,并把它插入左手拿著的排好序的撲克里面。

         插入排序的最壞運(yùn)行時(shí)間是O(n2), 所以并不是最優(yōu)的排序算法。

         如果輸入數(shù)組已經(jīng)是排好序的話(huà),插入排序出現(xiàn)最佳情況,其運(yùn)行時(shí)間是輸入規(guī)模的一個(gè)線(xiàn)性函數(shù)。

         如果輸入數(shù)組是逆序排列的,將出現(xiàn)最壞情況。平均情況與最壞情況一樣,其時(shí)間代價(jià)是Θ(n2)。

簡(jiǎn)單例子:

public class Demo6 { 
   
  public static void main(String[] args) {  
    //定義一個(gè)整型數(shù)組  
    int[] nums = new int[]{4,3,-1,9,2,1,8,0,6};  
    //打印沒(méi)有進(jìn)行排序的數(shù)組  
    System.out.println("沒(méi)有排序之前的結(jié)果:" + Arrays.toString(nums));  
    for(int index=0; index<nums.length; index++) {  
     //獲得需要插入的數(shù)值  
     int key = nums[index];  
     //取得下標(biāo)值  
     int position = index;  
      /循環(huán)比較之前排序好的數(shù)據(jù),找到合適的地方插入  
     while(position >0 && nums[position-1] > key) {  
      nums[position] = nums[position-1];  
      position--;  
     }  
     nums[position] = key;  
    }  
    //打印排序后的結(jié)果  
    System.out.println("排序后的結(jié)果:" + Arrays.toString(nums));  
   }  
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring Boot 如何使用Liquibase 進(jìn)行數(shù)據(jù)庫(kù)遷移(操作方法)

    Spring Boot 如何使用Liquibase 進(jìn)行數(shù)據(jù)庫(kù)遷移(操作方法)

    在Spring Boot應(yīng)用程序中使用Liquibase進(jìn)行數(shù)據(jù)庫(kù)遷移是一種強(qiáng)大的方式來(lái)管理數(shù)據(jù)庫(kù)模式的變化,本文重點(diǎn)講解如何在Spring Boot應(yīng)用程序中使用Liquibase進(jìn)行數(shù)據(jù)庫(kù)遷移,從而更好地管理數(shù)據(jù)庫(kù)模式的變化,感興趣的朋友跟隨小編一起看看吧
    2023-09-09
  • 如何解決java.net.BindException:地址已在使用問(wèn)題

    如何解決java.net.BindException:地址已在使用問(wèn)題

    當(dāng)Zookeeper啟動(dòng)報(bào)錯(cuò)“java.net.BindException:地址已在使用”時(shí),通常是因?yàn)橹付ǖ亩丝谝驯黄渌M(jìn)程占用,解決這個(gè)問(wèn)題需要按照以下步驟操作:首先,使用命令如lsof -i:2181找到占用該端口的進(jìn)程號(hào);其次,使用kill命令終止該進(jìn)程
    2024-09-09
  • Java的AQS基本原理詳細(xì)分析

    Java的AQS基本原理詳細(xì)分析

    這篇文章主要介紹了Java的AQS基本原理詳細(xì)分析,AQS是Abstract Queued Synchronizer的簡(jiǎn)稱(chēng),AQS提供了一種實(shí)現(xiàn)阻塞鎖和一系列依賴(lài)FIFO等待隊(duì)列的同步器的框架,本文主要講解分析其基本原理,需要的朋友可以參考下
    2024-01-01
  • MyBatis Mapper代理使用方法詳解

    MyBatis Mapper代理使用方法詳解

    本文是小編日常收集整理的關(guān)于mybatis mapper代理使用方法知識(shí),通過(guò)本文還給大家提供有關(guān)開(kāi)發(fā)規(guī)范方面的知識(shí)點(diǎn),本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看下吧
    2016-08-08
  • springboot如何讀取配置文件到靜態(tài)工具類(lèi)

    springboot如何讀取配置文件到靜態(tài)工具類(lèi)

    這篇文章主要介紹了springboot實(shí)現(xiàn)讀取配置文件到靜態(tài)工具類(lèi)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Eclipse常用快捷鍵大全

    Eclipse常用快捷鍵大全

    這篇文章主要介紹了Eclipse常用快捷鍵大全,較為詳細(xì)的針對(duì)eclipse中各種應(yīng)用中使用快捷鍵進(jìn)行了分類(lèi)總結(jié),具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • 基于@RequestBody和@ResponseBody及Stringify()的作用說(shuō)明

    基于@RequestBody和@ResponseBody及Stringify()的作用說(shuō)明

    這篇文章主要介紹了基于@RequestBody和@ResponseBody及Stringify()的作用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 如何用Java實(shí)現(xiàn)排列組合算法

    如何用Java實(shí)現(xiàn)排列組合算法

    本文主要介紹了如何用Java實(shí)現(xiàn)排列組合算法,對(duì)算法感興趣的同學(xué),可以參考一下,理解其原理,并且試驗(yàn)一下。
    2021-05-05
  • SpringBoot自定義bean綁定實(shí)現(xiàn)

    SpringBoot自定義bean綁定實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot自定義bean綁定,最常見(jiàn)的配置綁定的場(chǎng)景,是在自定義的bean中通過(guò)@Value注解將某個(gè)屬性和對(duì)應(yīng)的配置綁定
    2022-10-10
  • SpringMVC通過(guò)Ajax處理Json數(shù)據(jù)的步驟詳解

    SpringMVC通過(guò)Ajax處理Json數(shù)據(jù)的步驟詳解

    這篇文章主要介紹了SpringMVC通過(guò)Ajax處理Json數(shù)據(jù)的步驟詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04

最新評(píng)論