經典排序之插入排序

2021-07-23 07:45:06 字數 645 閱讀 1860

插入排序就是每一步都將乙個待排資料按其大小插入到已經排序的資料中的適當位置,直到全部插入完畢。 

插入排序方法分直接插入排序和折半插入排序兩種,這裡只介紹直接插入排序,折半插入排序留到「查詢」內容中進行。 

圖1演示了對4個元素進行直接插入排序的過程,共需要(a),(b),(c)三次插入。

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

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

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

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

#include using namespace std ;

//c語言獲取陣列長度 注意巨集定義不能換行

#define getlength(array) sizeof(array)/sizeof(array[0])

//c++獲取資料長度

template int getlen(t& array)

int* insertsort1

經典排序之插入排序

插入排序包括 直接插入排序,折半插入排序,希爾排序。思想 直接插入排序 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.基本思想 通過對未排序的資料逐個插入至合適的位置而完成排序工作。2.實現 public class insertionsort a j 1 t system.out.print 第 i 步排序結果 for h 0 h a.length h system.out.print n 在上...