簡單排序之直接插入排序

2021-07-14 16:58:02 字數 1056 閱讀 8562

直接插入排序是將乙個記錄插入到已經排好序的有序表中,從而得到乙個新的,記錄數增1的有序表。(聯想撲克牌遊戲)

在排序過程中相同元素的前後順序並沒有改變,則可認為此排序為穩定排序,反之為不穩定排 序。

搜尋和資料後移二個步

驟合併。即每次a[i]先和前面乙個資料a[i-1]比較,如果a[i] > a[i-1]說明a[0…i]也

是有序的,無須調整。否則就令j=i-1,temp=a[i]。然後一邊將資料a[j]向後移動一

邊向前搜尋,當有資料a[j]

直接插入排序(insertion  sort)的基本思想是:每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子串行中的適當位置,直到全部記錄插入完成

為止。

設陣列為arr[0…n-1]。

1.  初始時,arr0]自成1個有序區,無序區為arr[1..n-1]。令i=1

2.  將arri]併入當前的有序區arr0…i-1]中形成arr[0…i]的有序區間。

3.  i++並重複第二步直到i==n-1。排序完成。

package ******sorts;

public class directlinsertsort

arr[j+1]=temp;}}

} public static void main(string args) ;

system.out.println("排序前的順序為:");

for (int i : arr)

system.out.print("\n");

directinsetsort(arr);

system.out.println("排序後的順序為:");

插入排序之直接插入排序

插入排序概述 有乙個已經有序的資料序列,要求在這個已經排好的資料序列中插入乙個數,但要求插入後此資料序列仍然有序,這個時候就要用到一種新的排序方法 插入排序法,插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的 個數加一的有序資料,演算法適用於少量資料的排序,時間複雜度為...

插入排序之直接插入排序

依次將每個記錄 無序表 插入到乙個已排好序的有序表中,得到乙個新的,記錄增加1的有序表 向撲克牌中插入新牌,圖書館整理圖書 有n個數,將第乙個數看做乙個有序表,從第二個開始從後向前比較,第一趟比較前兩個數,然後把第二個數按大小插入到有序表中 第二趟把第三個資料與前兩個數從後向前掃瞄,把第三個數按大小...

插入排序之直接插入排序

packagesort.algorithm publicclassdirectinsertsort inttemp,j for int i 1 i data.length i data j 1 temp 輸出排序好的資料 for int k 0 k data.length k 直接插入排序,一般對於...