經典排序之 插入排序

2022-06-22 03:12:10 字數 915 閱讀 2913

今天介紹另外幾種排序演算法,這裡講一下簡單插入排序

演算法思想插入排序整體的思想是對有序的陣列進行排序,例如拿到乙個陣列,它的第乙個資料肯定是有序的,從第二個資料開始開始和前邊的資料 比較,當遇到比它大的資料後就向後移動資料的位置,再次向前比較,直到前邊的資料比它小為止,這時就交換兩個資料的位置,這就是一次排序的實現,每次排序確定乙個數字的最終位置。

插入排序適合少量資料的時候,它的最好情況下的時間複雜度為o(n), 但一般情況下是o(n2),它是一種穩定的排序演算法。其中還有一些插入排序的變體(折半插入排序,希爾排序等)都是在插入排序的基礎上,針對大資料量的情況的優化。

演算法實現:

1 #include2

using

namespace

std;34

void insertsort(int *data, int

length)89

inti, j;

10int

temp;

1112

for( i = 1; i < length; i++)

2021 data[j + 1] =temp; //交換兩個值22}

23}

2425

intmain();

27int len = sizeof(str) / sizeof(int

);28

29insertsort(str, len);

3031

for(int k = 0; k < len; k++)

3435

return0;

36 }

經典排序之插入排序

插入排序包括 直接插入排序,折半插入排序,希爾排序。思想 直接插入排序 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...