排序算法1

选择排序

时间复杂度O(n*n),基本思想是每轮找出未排序部分中的最值

从小到大排序版本

// 假设数组为A[n]
for(int i = 0;i < n-1;i++){
	int k = i;
	for(int j = i+1;j < n;j++){
		if(A[k] > A[j])
			k = j;
	}
	int temp = A[i];
	A[i] = A[k];
	A[k] = temp;
}

冒泡排序

时间复杂度是O(n*n),基本思想是每轮将未排序部分最值移到首或尾

从小到大版本

// 假设数组为A[n]
for(int i = 1;i <= n;i++){
	for(int j = 0;j < n-i;j++){
		if(A[j] > A[j+1]){
			int temp = A[j];
			A[j] = A[j+1];
			A[j+1] = temp;
		}
	}
}

猜你喜欢

转载自blog.csdn.net/DevXU/article/details/106817609