直接插入排序 希爾排序

2022-06-11 15:24:09 字數 872 閱讀 9942

1.直接插入排序

時間複雜度o(n2)

工作原理:

通過構建有序序列,對於未排序資料,在已排序的序列中,從後向前掃瞄,找到相應的位置並插入。

插入排序在實現上,在從後向前掃瞄的過程中,需要反覆把已排序元素逐步向後移動,為最新元素提供插入空間。

//直接插入排序

public static void insertsort(int a,int n)

arr[j]=target;

}//減小間隔

h=(h-1)/3;}}

}testshellsort

package com.sort;

public class testshellsort

system.out.print("]");

system.out.println();

shellsort.shellsort(arr);

system.out.print("[");

for (int num : arr)

system.out.print("]");

system.out.println();}}

栗子:有些排序演算法在每趟排序過程中,都會有乙個元素被放置在其最終的位置上,下列演算法不會出現此情況的是()

正確答案: a   你的答案: d (錯誤)

a.希爾排序

b.堆排序

c.起泡排序

d.快速排序

直接插入排序 希爾排序

一.直接插入排序 原理 將陣列分為無序區和有序區兩個區,然後不斷將無序區的第乙個元素按大小順序插入到有序區中去,最終將所有無序區元素都移動到有序區完成排序。最優複雜度 當輸入陣列就是排好序的時候,複雜度為o n 而快速排序在這種情況下會產生o n 2 的複雜度。最差複雜度 當輸入陣列為倒序時,複雜度...

插入排序 直接插入 希爾排序

直接插入排序是將元素按順序插入已經排好序的序列中。對於待插入的元素,如果比最後乙個元素還大,則不用處理。否則,從後邊元素開始比較,並順次後移,直到碰到元素小於或者等於該元素。設定第乙個元素位置為哨兵,用來存放待插入元素。include include include using namespace ...

插入排序(直接插入排序 希爾排序)

直接插入排序 基本思想 假設待排序的數存放在陣列arr 1.n 中。初始時,arr 1 自成1個有序區,無序區為arr 2.n 從i 2起直至i n為止,依次將arr i 插入當前的有序區arr 1.i 1 中,生成含n個記錄的有序區。演算法複雜度 對於具有n個記錄的檔案,要進行n 1次排序 各種狀...