經典排序之插入排序

2021-08-21 13:00:29 字數 1309 閱讀 9188

一、插入排序

1.基本思想:通過對未排序的資料逐個插入至合適的位置而完成排序工作。

2.**實現

public class insertionsort 

a[j+1] = t;

system.out.print("第"+i+"步排序結果:");

for(h = 0; h < a.length; h++)

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

} }/*在上述**中,首先將需要插入的元素儲存在變數t中。變數j表示需要插入的位置,一般就是插入的陣列的序號。

* 設定變數j的值為i-1,表示準備將當前位置(序號為i)的數插入序號為i-1的位置,接著,演算法程式通過while

* 迴圈來進行判斷,如果序號為 j元素的資料大於變數 t,則將序號為j的元素向後移,同時j減一,以判斷前乙個資料

* 是否還需向後移。通過該while迴圈找到乙個元素的值別t小,該元素是j,然後將序號為j的下乙個元素進行資料插入操作*/

public static void main(string args)

system.out.print("排序前的陣列為:\n");

for(i=0;i二、shell排序

1.基本思想:基於插入排序,又稱為希爾排序或縮小增量排序,其排序流程如下:

(1)將有n個元素的陣列分為n/2個數字序列,第1個資料和第n/2+1個資料為一對,........;

(2)一次迴圈使每一對序列排好序列;

(3)然後,再變為n/4個序列,再次排序;

(4)不斷重複上述過程,隨著序列減少為最後乙個,也就完成了整個序列;

當是大量資料且部分有序時,shell排序演算法效率較高。

二、**實現

public class shellsort

a[j+r] = temp;

}x++;

system.out.print("第"+x+"步排序結果:");

for(h=0;hsystem.out.println();

} }public static void main(string args)

system.out.println("排序前的陣列:");

for(i = 0; i < size; i++)

system.out.println();

shellsort(shuzu);

system.out.println("排序後的陣列:");

for(i = 0; i < size; i++)

system.out.println();

}}

經典排序之插入排序

插入排序包括 直接插入排序,折半插入排序,希爾排序。思想 直接插入排序 straight insertion sorting 的基本思想是 把n個待排序的元素看成為乙個有序表和乙個無序表,開始時有序表中只包含乙個元素,無序表中包含有n 1個元素,排序過程中每次從無序表中取出第乙個元素,將它插入到有序...

經典排序之插入排序

插入排序的思想很簡單,就是每向有序序列中插入乙個數,就把這個數依次與其他數比較,逐次替換。下面是 public class insertsort a i 1 keyword system.out.println arrays.tostring a public static void main st...

經典排序之插入排序

插入排序就是每一步都將乙個待排資料按其大小插入到已經排序的資料中的適當位置,直到全部插入完畢。插入排序方法分直接插入排序和折半插入排序兩種,這裡只介紹直接插入排序,折半插入排序留到 查詢 內容中進行。圖1演示了對4個元素進行直接插入排序的過程,共需要 a b c 三次插入。設陣列為a 0 n 1 1...