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

2021-08-17 06:11:41 字數 997 閱讀 1348

插入是排序中常用的演算法之一,也是每個程式設計人員必須掌握的排序演算法之一。直接插入法的時間複雜度為o(n^2),空間複雜度為o(1),這是一種穩定的演算法,其效能與待排序序列的初始狀態有關。寫這篇文章是為了實現插入排序中的直接插入排序演算法。插入排序屬於比較排序,因此,文首先定義乙個比較器:

template

struct less

};

這裡的比較器為功能為當左運算元小於右運算元時返回true,否則小於false。

直接插入,顧名思義,就是逐個元素進行比較,滿足條件則交換位置。

下面給出演算法實現:

template

void insertsort(t *array, const

int size)}}

接下來用下面**進行測試:

void test1()

; int sz = sizeof(arr) / sizeof(arr[0]);

srand((unsigned

int)time(0));

for(int i = 0; i < sz; i++)

for(int i = 0; i < sz; i++)

cout

<< arr[i] << " ";

cout

<< endl << endl << endl << "sort:"

<< endl;

insertsort(arr, sz);

for(int i = 0; i < sz; i++)

cout

<< arr[i] << " ";

cout

<< endl;

}

測試結果:

排序成功。

實現完畢,望高手斧正!

插入排序 1 直接插入排序

插入排序 插入排序的演算法思想是 在乙個有序 的元素序列中,不斷地將新元素插入到該已經有序的元素序列中的合適位置,直到所有元素都插入到合適位置則完成排序。直接插入排序 假設待排序的元素有n個,對應的元素分別是a1,a2,a3,a4.因為第乙個元素是有序的,所以從第二個元素開始,將a2與a1進行比較。...

1 直接插入排序 插入排序

直接插入排序 straight insertion sort 是一種最簡單的排序方法,它的基本操作是將乙個記錄插入到已排好序的有序表中,從而得到乙個新的 記錄數增1的有序表。排序過程如下 參考自嚴蔚敏的資料結構 c語言版 思想是第一次將第乙個元素當作有序組,每次後面的元素插入到有序組中使其任然有序,...

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

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