直接插入排序

2021-09-24 04:18:38 字數 964 閱讀 5286

/**

* @author qy

* 直接插入排序

* 基本思想:

* 在要排序的一組數中,假設前面(n-1)[n>=2] 個數已經是排

* 好順序的,現在要把第n個數插到前面的有序數中,使得這n個數

* 也是排好順序的。如此反覆迴圈,直到全部排好順序。

*/public class insertsort {

public static void insertsort(int array1){

//第0位獨自作為有序數列,從第1位開始向後遍歷

for(int i=1;i=0 && temp直接插入排序是一種簡單的插入排序法,其基本思想是:把待排序的記錄按其關鍵碼值的大小逐個插入到乙個已經排好序的有序序列中,直到所有的記錄插入完為止,得到乙個新的有序序列。

直接排序**:

直接插入排序是由兩層巢狀迴圈組成的。外層迴圈標識並決定待比較的數值。 內層迴圈確定數值的最終位置。

直接插入排序是將待比較的數值與它前面有序數值依次進行比較, 

所以外層迴圈是從第二個數值開始的。當前一數值比待比較數值大的情況下繼續迴圈比較, 

直到找到比待比較數值小的並將待比較數值置入其後一位置,結束該次迴圈。 

在直接選擇排序中,共需要進行n-1次選擇和交換,每次選擇需要進行 n-i 次比較 (1<=i<=n-1),而每次交換最多需要3次移動,因此,總的比較次數c=(n*n - n)/2,

總的移動次數 3(n-1).由此可知,直接選擇排序的時間複雜度為 o(n2) ,所以當記錄占用位元組數較多時,通常比直接插入排序的執行速度快些。

由於在直接選擇排序中存在著不相鄰元素之間的互換,因此,直接選擇排序是一種不穩定的排序方法。

直接插入排序

直接插入排序是一種最簡單的排序方法,它的基本思想是依次將每個記錄插入到乙個有序中去。就是說,第i i 1 遍整理時,a1,a2,ai 1已經是排好序的子串行 取出第i個元素ai,在已排好序的子串行為ai找到乙個合適的位置,並將它插到該位置上。易知上述排序當i 1時實際上為空操作,故可直接從i 2開始...

直接插入排序

直接插入排序的演算法思想 直接插入排序 straight insertion sort 的基本操作是將乙個記錄插入到已經排好序的有序表中,從而得到乙個新的 記錄數增 1 的有序表。根據該思想,編寫 如下 從已有序列的第0個記錄開始比較 public static void insertsort1 i...

直接插入排序

源文章url http student.zjzk.cn course ware data structure web paixu paixu8.2.1.1.htm 做過部分修改。1 基本思想 假設待排序的記錄存放在陣列r 1.n 中。初始時,r 1 自成1個有序區,無序區為r 2.n 從i 2起直至...