java數據結構之插入排序
插入排序就是把當前待排序的元素插入到一個已經排好序的列表里面。 一個非常形象的例子就是右手抓取一張撲克牌,并把它插入左手拿著的排好序的撲克里面。
插入排序的最壞運行時間是O(n2), 所以并不是最優(yōu)的排序算法。
如果輸入數組已經是排好序的話,插入排序出現最佳情況,其運行時間是輸入規(guī)模的一個線性函數。
如果輸入數組是逆序排列的,將出現最壞情況。平均情況與最壞情況一樣,其時間代價是Θ(n2)。
簡單例子:
public class Demo6 { public static void main(String[] args) { //定義一個整型數組 int[] nums = new int[]{4,3,-1,9,2,1,8,0,6}; //打印沒有進行排序的數組 System.out.println("沒有排序之前的結果:" + Arrays.toString(nums)); for(int index=0; index<nums.length; index++) { //獲得需要插入的數值 int key = nums[index]; //取得下標值 int position = index; /循環(huán)比較之前排序好的數據,找到合適的地方插入 while(position >0 && nums[position-1] > key) { nums[position] = nums[position-1]; position--; } nums[position] = key; } //打印排序后的結果 System.out.println("排序后的結果:" + Arrays.toString(nums)); } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Spring Boot 如何使用Liquibase 進行數據庫遷移(操作方法)
在Spring Boot應用程序中使用Liquibase進行數據庫遷移是一種強大的方式來管理數據庫模式的變化,本文重點講解如何在Spring Boot應用程序中使用Liquibase進行數據庫遷移,從而更好地管理數據庫模式的變化,感興趣的朋友跟隨小編一起看看吧2023-09-09如何解決java.net.BindException:地址已在使用問題
當Zookeeper啟動報錯“java.net.BindException:地址已在使用”時,通常是因為指定的端口已被其他進程占用,解決這個問題需要按照以下步驟操作:首先,使用命令如lsof -i:2181找到占用該端口的進程號;其次,使用kill命令終止該進程2024-09-09基于@RequestBody和@ResponseBody及Stringify()的作用說明
這篇文章主要介紹了基于@RequestBody和@ResponseBody及Stringify()的作用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06