插入排序学习总结

    插入排序算法是一种简答的排序算法,也称之为直接插入排序算法,是一种稳定的排序算法,对局部有序的数据具有较高的效率

    插入排序是一种对少量数据进行排序的有效算法,最好情况,待排序序列有序 时间复杂度为0(n),最坏情况,待排序序列为逆序 时间复杂度为0(n*n)

    算法思想是:每一次从无序序列中拿出一个数据,将它放到已排序的序列的正确位置,如此重复,直到所有无序序列中的数据都找到了正确的位置

下面用一张图来描述这个过程

接下来就用C语言实现这个过程

#include<stdio.h>

void insertSort(int arr[],int len){
	for (int i = 1; i < len; i++)
	{
		if (arr[i]<arr[i-1]){
			int temp = arr[i]; //利用temp保存当前i位置的数据值
			int j = i - 1;
			for (; j >= 0 && arr[j] > temp ; j--)
			{
				//数据进行后移
				arr[j+1] = arr[j];
			}
			arr[j + 1] = temp;
		}
	}
}
void printArray(int arr[],int len){
	for (int i = 0; i < len; i++)
	{
		printf("%d\n",arr[i]);
	}
}
void test01(){
	int arr[] = {5,9,6,1,3,7};
	int len = sizeof(arr)/sizeof(int);
	insertSort(arr,len);

	//打印数组
	printArray(arr,len);
}
int main(){
	test01();
	return 0;
}
发布了122 篇原创文章 · 获赞 58 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_39112646/article/details/103302412