前言
插入排序法:它的基本思想是將一個數據插入到已經排好序的有序表中,從而完成所有數據排序。
聽說是一種比較簡單的排序算法。
至於該排序的算法復雜度。
嗯,請查其他資料吧。
本次采用C語言的方式實現。
代碼實現
#include <stdio.h>
// 打印數組
void print(int *buf, int size)
{
for (int i = 0; i < size; ++i)
{
printf("%d ", buf[i]);
}
printf("\n");
}
// 排序數組(從小到大)
void sort(int *buf, int size)
{
for (int i = 1; i < size; ++i)
{
for (int j = i ; j > 0; --j)
{
if (buf[j - 1] > buf[j]) // 1.[ > 從小到大 ] 2.[ < 從大到小 ]
{
int tmp = buf[j];
buf[j] = buf[j - 1];
buf[j - 1] = tmp;
}
}
}
}
// 主函數
int main(int argc, char **argv)
{
int buf[] = { 33, 2, 3, 3, 2, 1, 1, 2, 3, 3, 1, 1, 1, 1, 1, 1 }; // 源數組
int size = sizeof(buf) / sizeof(int); // 數組大小
print(buf, size); // 打印插入排序前數組
sort(buf, size); // 執行插入排序
print(buf, size); // 打印插入排序后數組
return 0;
}
調試結果
結語
嗯。
好像是簡單。
---End