c语言-插入排序

这个应该是 CLRS (算法导论)中介绍的第一个算法,其思想如下:

每次选择一个元素,并且将这个元素和整个数组中的所有元素进行比较,然后插入到合适的位置,图片演示如上,时间复杂度 O(n^2),C 代码如下:

#include<stdio.h>
void insertion_sort(int arr[], int length)
{
	int i,j,temp;
	for( i=1; i<length; i++){
		temp = arr[i];
		for( j=i; j>0 && arr[j-1] > temp; j--)
		{
			arr[j] = arr[j-1];
		}
		arr[j] = temp;
	}
} 


int main()
 {	
 	int arr[] = {6,5,3,1,8,7,2,4};
 	int length = sizeof(arr) / sizeof(arr[0]) ;
 	insertion_sort( arr, length );
 	for( int i=0; i<length; i++)
 		printf("%2d",arr[i]);
 	return 0;
 }
 

猜你喜欢

转载自blog.csdn.net/suxiaorui/article/details/88385312
今日推荐