第七章-排序 选择排序

五迷三道 提交于 2020-08-07 15:13:31
#include <stdio.h>
#include "tool.h"

/*
	选择排序算法:
	1.从第一个元素开始,从后续待排序序列中选择最小的元素放在第一个位置
	2.然后第二个元素,从后续待排序序列中选择最小的元素放在第二个位置
	3.依次类推

	算法复杂度:O(N^2)
*/
void simpleSelctionSort(int a[],int len) {
	int minIndex;
	int i, j;
	for (i = 0; i < len-1; i++) {
		minIndex = i;
		for (j = i + 1; j < len; j++) {
			if (a[j] < a[minIndex]) {
				minIndex = j;
			}
		}
		if (minIndex != i) {
			swap(&a[i], &a[minIndex]);
		}
	}

}

int main() {
	int a[10] = { 9,1,8,5,7,6,4,3,10,2 };
	int len = sizeof(a) / sizeof(a[0]);
	printf("排序前: ");
	printfArray(a, len);
	
	simpleSelctionSort(a, len);
	
	printf("排序前: ");
	printfArray(a, len);

	return 0;
}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!