【排序算法】直接插入排序

数据结构课程中的好多排序算法都已经学过了,但过了一年还是忘了好多,仅仅只会冒泡,选择,所以最近计划把其他排序算法也好好温习巩固一下!!!


直接插入排序:

假设待排序的元素存放在数组R[0...n-1]中,排序过程中的某一时刻,R被划分成两个子区间R[0...i-1]和R[i...n-1](刚开始时i = 1,有序区只有R[0]一个元素),其中,前一个子区间是已经排好序的有序区,后一个区间则是当前未排序的部分,不放称其为无序区

直接插入排序的一趟操作是将当前无序区的开头元素R[i](1<=i这样使得每趟操作使有序区增加一个元素,这叫做增量法


C语言的代码如下:

#include

/**
快速排序:
1.将初始序列R[N]分为2部分:R[0],R[1,N-1];
2.从R[1,N-1]选取第一个元素,加入到R[0]中的合适位置中,使其R[0...1]为有序序列;
3.重复上述步骤

注意问题:经过每一趟的循环,有的元素会改变位置,向有序序列插入时,无序序列和有序序列元素位置都会
				  改变,因为需要将目标元素合适位置的后面的元素后移
*/
void insertSort(int a[],int n){
	int i,j;
	int temp;
	for(i = 1;i=0&&temp


你可能感兴趣的:(算法)