C語言實現插入排序代碼


前言

插入排序法:它的基本思想是將一個數據插入到已經排好序的有序表中,從而完成所有數據排序。

聽說是一種比較簡單的排序算法。

至於該排序的算法復雜度。

嗯,請查其他資料吧。

本次采用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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM