算法基础——排序——插入排序——直接插入排序

对序列 A 中的 n 个元素 A[1]~A[n],令 i 从 2 到 n 枚举,进行 n-1 趟操作。

假设某一趟时,序列 A 的前 i-1 个元素 A[1]~A[i-1] 已经有序,而范围 [1, n] 还未有序,

那么该趟 从范围 [1, i-1] 中寻找某个位置 j,使得 A[i] 插入位置 j 后,范围 [1, i] 有序。

了解:插入排序是将 待插入元素 一个个插入初始已有序部分中的过程,而插入位置的选择遵循了使插入后仍然保持有序的原则。

#include <stdio.h>
int A[5] = {3, 1, 4, 5, 2};
void insertSort(){
	for(int i = 1; i < 5; i++){
		int temp = A[i], j = i;
		while(j > 0 && temp < A[j-1]){
			A[j] = A[j-1];
			j--;
		}
		A[j] = temp;
	}
}
int main(){
	insertSort();
	for(int i = 0; i < 5; i++){
		printf("%d ", A[i]);
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/gsj9086/article/details/86654321