Java演算法——直接插入排序
阿新 • • 發佈:2018-12-31
直接插入排序
前言
直接插入是一種穩定的插入排序,效率較高,而且時間複雜度也低,因為只是在一個數組內部進行內排,但是隻適用於在有一些以前就排好的順序的陣列內部,如果在很長又很雜亂的陣列內部進行排序的話,會讓效率降低。
直接插入排序描述
首先定義一段長度為n的陣列,從最左邊開始:
第一趟的排序,只對前2個元素進行排序,
第二趟的排序,只對前3個元素進行排序,
第三趟的排序,只對前4個元素進行排序,
……
共計要進行n-1趟的排序。
程式碼圖解
程式碼
package Algorithm;
import java.util.ArrayList;
import java.util.Scanner;
/**
* 直接插入排序:依次遍歷排序,直到全部讀取結束
*/
public class charu_Sort {
public static void main(String[] args) {
int n = new Scanner(System.in).nextInt();
int []arr = new int[n];
System.out.println("給陣列依次賦值吧");
for(int i=0;i<n;i++) {
arr[i] = new Scanner(System.in).nextInt();
}
for (int front=1;front<arr.length;front++){
int p =arr[front];
int behind;
for (behind=front-1;behind>=0;behind--){
if(p<arr[behind]){
arr[behind+1]=arr[behind];
} else
break;
}
arr[behind+1]=p;
}
for(int u=0;u<arr.length;u++){
System.out.println(arr[u]);
}
}
}