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

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

void selectionsort(int A[], int n) {
	for (int i = 0; i < n - 1; i++) {//从索引0开始排序至索引n-2,n-1号元素自然最大
		int iMin = i;//索引i至索引n-1最小元素的索引,初始化为i,索引i至索引n-1未完成排序
		for (int j = i + 1; j < n; j++) {
			if (A[j] < A[iMin])
				iMin = j;
		}//从索引i后面开始依次与索引i比较,迭代为索引i至索引n-1最小元素索引
		int temp = A[i];
		A[i] = A[iMin];
		A[iMin] = temp;//交换最小元素与索引i,索引i及之前元素完成排序
	}	
}//时间复杂度:O(n^2)

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