InsertionSort 直接插入排序(java)
排序思想:
相當於一堆數字,一開始先取出2個數排序,2個數排好序之後,再從一堆數字裏面取一個數排序,直到結束
偽代碼:
INSERTION_SORT(A)
for j = 2 to A.length
key = A[j]
//Insert A[j] into sorted sequence A[1...j-1].
i = j - 1
while i>0 and A[i]>key
A[i+1] = A[j]
i = i - 1
A[i + 1] = key
代碼:
import java.io.*;
public class InsertionSort{
public static void InsertionSort(int[] A){
//從第二個元素開始循環
for(int i=1;i<A.length;i++){
//得到需要排序的數
int key = A[i];
//跟之前排好序的最大的元素開始比較,此時j為之前排好序的最大的元素的下標
int j = i - 1;
//循環比較,直到這個數>前一個數並且<後一個數
while(j>=0&&A[j]>key){
//比這個數大,則之前的數往後移
A[j+1] = A[j];
j = j - 1;
}
//把這個數放入數組中
A[j + 1] = key;
}
}
public static void main(String[] args) {
int[] A = { 4, 6, 9, 10, 5, 3};
InsertionSort(A);
for(int a: A){
System.out.print(a+" ");
}
}
}
InsertionSort 直接插入排序(java)