常用排序演算法之直接插入排序

2021-07-23 06:26:23 字數 1116 閱讀 9903

直接插入排序:若乙個陣列a[n],當插入元素a[i]時(i>0),前i-1個元素已排序完成,此時將a[i]的值取出,並依次與a[i-1]、a[i-2]、……a[0]比較,若a[i]小,則將元素往後移一位(注意此時a[i]的值並為放入),直到找到比a[i]小的元素,將a[i]的值放在該元素後面,具體見文末結果展示。

**:public class directinsertsort ;//10,15,14,17,13,12,16,11,19,20,18

sort(arr,9); }

public static int sort(int arr,int n)

arr[j+1]=t;//插入元素

print(arr,n); }

return arr; }

public static void print(int arr,int n)

system.out.println(); }

} 過程:3 4 9 6 1 7 2 8 5 

3 4 9 6 1 7 2 8 5 

3 4

9 9 1 7 2 8 5 

3 4

6 9 1 7 2 8 5 

3 4 6

9 9 7 2 8 5 

3 4

6 6 9 7 2 8 5 

3 4 4 6 9 7 2 8 5 

3 3 4 6 9 7 2 8 5 

1 3 4 6 9 7 2 8 5 

1 3 4 6 9 9 2 8 5 

1 3 4 6 7 9 2 8 5 

1 3 4 6 7 9 9 8 5 

1 3 4 6 7 7 9 8 5 

1 3 4 6 6 7 9 8 5 

1 3 4 4 6 7 9 8 5 

1 3 3 4 6 7 9 8 5 

1 2 3 4 6 7 9 8 5 

1 2 3 4 6 7 9 9 5 

1 2 3 4 6 7 8 9 5 

1 2 3 4 6 7 8 9 9 

1 2 3 4 6 7 8 8 9 

1 2 3 4 6 7 7 8 9 

1 2 3 4 6 6 7 8 9 

1 2 3 4 5 6 7 8 9 

排序演算法 插入排序之直接插入排序

直接插入排序的核心思想是把乙個記錄插入乙個有序序列中,每插入乙個記錄就得到乙個新的有序序列,直到所有記錄都插入成功,得到有序序列。每次插入記錄時的有序序列如何得到,關鍵在第一次,第一次要插入的記錄時序列的第二個值,有序序列只有乙個值,就是第乙個記錄。a j 1 x j 1就是要插入的位置 print...

排序演算法之直接插入排序

直接插入排序 straight insertion sort 的基本思想 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子串行中的適當位置,直到全部記錄插入完成為止。設陣列為a 0 n 1 其中紅色區域為有序區域 1.初始時,a 0 自成1個有序區,無序區為a 1.n 1 a 0 a ...

排序演算法之直接插入排序

直接插入排序類似於我們平常在打撲克摸牌時候的一種情形。我習慣於左手拿牌右手摸牌,每次先把左手中的牌齊整齊,然後右手新摸一張牌中把它放到左手中正確的位置,讓它成為乙個新的整齊的牌堆。如果根據上面的思路我們可以發現,直接插入排序的思想就是,從需要排序的第二個數字開始,拿取乙個數,與前面的數字進行比較,放...