Insertion sort【1月18日学习笔记】

点击查看代码
//Insertion sort
#include<iostream>
using namespace std;

void insertionsort(int A[], int n) {
	int value, hole;//value表示插入值,hole表示插入位置
	for (int i = 1; i < n; i++) {//初始时索引1至索引n-1属于未排序子集
		value = A[i];//索引i赋为待插入值
		hole = i;//hole初始化为i 
		while (hole > 0 && A[hole - 1] > value) {//待插入位置前一元素较大
			A[hole] = A[hole - 1];//较大值后移
			hole = hole - 1;//插入位置前移
		}
		A[hole] = value;//将待插入值插入排序集
	}
}//时间复杂度:O(n^2)

int main() {
	int A[] = { 2,7,4,1,5,3 };
	insertionsort(A, 6);
	for (int i = 0; i < 6; i++)  cout << A[i] << " ";
	cout << endl;
}
posted @ 2024-01-18 10:56  bituion  阅读(26)  评论(0)    收藏  举报