java簡單插入排序?qū)嵗?/h1>
更新時間:2017年08月11日 08:57:35 作者:五歲i
這篇文章主要為大家詳細介紹了java簡單插入排序?qū)嵗哂幸欢ǖ膮⒖純r值,感興趣的小伙伴們可以參考一下
一、基本概念
插入排序的基本操作就是將一個數(shù)據(jù)插入到已經(jīng)排好序的有序數(shù)據(jù)中,從而得到一個新的、個數(shù)加一的有序數(shù)據(jù),算法適用于少量數(shù)據(jù)的排序,時間復(fù)雜度為O(n^2)。是穩(wěn)定的排序方法。插入算法把要排序的數(shù)組分成兩部分:第一部分包含了這個數(shù)組的所有元素,但將最后一個元素除外(讓數(shù)組多一個空間才有插入的位置),而第二部分就只包含這一個元素(即待插入元素)。在第一部分排序完成后,再將這個最后元素插入到已排好序的第一部分中。
二、java代碼實現(xiàn)
public class InsertSort {
public static void inserSort(int[] array){
if (array==null||array.length<2){
return;
}
for (int i=1;i<array.length;i++){ //默認第一個元素為有序隊列,從第二個元素開始循環(huán)插入
int position=array[i]; //設(shè)置第二個元素為要插入的數(shù)據(jù)
int j=i-1;
while (j>=0&&position<array[j]){
array[j+1]=array[j]; //如果插入發(fā)數(shù)小于第j個元素,將第j個數(shù)向后移
j--;
}
array[j+1]=position; //插入
}
}
public static void main(String ags[]){
int[] array={2,6,4,7,3,-1};
inserSort(array);
for (int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
}
}
三、性能分析
穩(wěn)定
空間復(fù)雜度O(1)
時間復(fù)雜度O(n2)
最差情況:反序,需要移動n*(n-1)/2個元素
最好情況:正序,不需要移動元素
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
-
詳解Mybatis-plus中更新date類型數(shù)據(jù)遇到的坑
這篇文章主要介紹了詳解Mybatis-plus中更新date類型數(shù)據(jù)遇到的坑,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧 2020-10-10
-
java學(xué)習(xí)之利用TCP實現(xiàn)的簡單聊天示例代碼
這篇文章主要給大家介紹了關(guān)于java學(xué)習(xí)筆記之利用TCP實現(xiàn)的簡單聊天的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。 2017-12-12
-
java idea如何根據(jù)請求路徑url自動找到對應(yīng)controller方法插件
這篇文章主要介紹了java idea如何根據(jù)請求路徑url自動找到對應(yīng)controller方法插件,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教 2023-12-12
-
Spring Cloud動態(tài)配置刷新@RefreshScope與@Component的深度解析
在現(xiàn)代微服務(wù)架構(gòu)中,動態(tài)配置管理是一個關(guān)鍵需求,Spring Cloud 提供了 @RefreshScope 注解,允許應(yīng)用在運行時動態(tài)更新配置,而無需重啟服務(wù),本文深入探析Spring Cloud動態(tài)配置刷新@RefreshScope與@Component,感興趣的朋友一起看看吧 2025-04-04
-
AJAX?SpringBoot?前后端數(shù)據(jù)交互的項目實現(xiàn)
本文主要介紹了AJAX?SpringBoot?前后端數(shù)據(jù)交互的項目實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下 2022-03-03
最新評論
一、基本概念
插入排序的基本操作就是將一個數(shù)據(jù)插入到已經(jīng)排好序的有序數(shù)據(jù)中,從而得到一個新的、個數(shù)加一的有序數(shù)據(jù),算法適用于少量數(shù)據(jù)的排序,時間復(fù)雜度為O(n^2)。是穩(wěn)定的排序方法。插入算法把要排序的數(shù)組分成兩部分:第一部分包含了這個數(shù)組的所有元素,但將最后一個元素除外(讓數(shù)組多一個空間才有插入的位置),而第二部分就只包含這一個元素(即待插入元素)。在第一部分排序完成后,再將這個最后元素插入到已排好序的第一部分中。
二、java代碼實現(xiàn)
public class InsertSort {
public static void inserSort(int[] array){
if (array==null||array.length<2){
return;
}
for (int i=1;i<array.length;i++){ //默認第一個元素為有序隊列,從第二個元素開始循環(huán)插入
int position=array[i]; //設(shè)置第二個元素為要插入的數(shù)據(jù)
int j=i-1;
while (j>=0&&position<array[j]){
array[j+1]=array[j]; //如果插入發(fā)數(shù)小于第j個元素,將第j個數(shù)向后移
j--;
}
array[j+1]=position; //插入
}
}
public static void main(String ags[]){
int[] array={2,6,4,7,3,-1};
inserSort(array);
for (int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
}
}
三、性能分析
穩(wěn)定
空間復(fù)雜度O(1)
時間復(fù)雜度O(n2)
最差情況:反序,需要移動n*(n-1)/2個元素
最好情況:正序,不需要移動元素
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Mybatis-plus中更新date類型數(shù)據(jù)遇到的坑
這篇文章主要介紹了詳解Mybatis-plus中更新date類型數(shù)據(jù)遇到的坑,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
java學(xué)習(xí)之利用TCP實現(xiàn)的簡單聊天示例代碼
這篇文章主要給大家介紹了關(guān)于java學(xué)習(xí)筆記之利用TCP實現(xiàn)的簡單聊天的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
java idea如何根據(jù)請求路徑url自動找到對應(yīng)controller方法插件
這篇文章主要介紹了java idea如何根據(jù)請求路徑url自動找到對應(yīng)controller方法插件,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
Spring Cloud動態(tài)配置刷新@RefreshScope與@Component的深度解析
在現(xiàn)代微服務(wù)架構(gòu)中,動態(tài)配置管理是一個關(guān)鍵需求,Spring Cloud 提供了 @RefreshScope 注解,允許應(yīng)用在運行時動態(tài)更新配置,而無需重啟服務(wù),本文深入探析Spring Cloud動態(tài)配置刷新@RefreshScope與@Component,感興趣的朋友一起看看吧2025-04-04
AJAX?SpringBoot?前后端數(shù)據(jù)交互的項目實現(xiàn)
本文主要介紹了AJAX?SpringBoot?前后端數(shù)據(jù)交互的項目實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03

