第七章-排序 插入排序

大城市里の小女人 提交于 2020-07-28 06:08:29
#include <stdio.h>
#include "tool.h"

/*
	简单插入排序算法:
	1.把待排序队列分成,已排序、未排序两部分。一开始已排序部分元素个数为0
	2.然后从待排序队列中取出第一个元素与已排序队列元素最后一个元素比较
	  如果小于,则交换。然后依次向前比较,直到大于等于前一个元素。

	算法复杂度:O(N^2)
*/
void simpleInsertSort(int a[], int len) {
	
	int i, j;
	for (i = 1; i < len; i++) {
		int tmp = a[i];
		for (j = i; j > 0 && a[j-1] > tmp; j--) {
			a[j] = a[j - 1];
		}
		a[j] = tmp;
	}

}

int main() {
	int a[10] = { 9,1,8,5,7,6,4,3,10,2 };
	int len = sizeof(a) / sizeof(a[0]);
	printf("排序前: ");
	printfArray(a, len);

	simpleInsertSort(a, len);

	printf("排序后: ");
	printfArray(a, len);

	return 0;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!