关注

数据结构--选择排序

选择排序:

核心思想:

每一轮在未排序区间里找到最小(最大)元素,和未排序区间第一个元素交换,逐步构建前面的有序区。也就是每一趟将待排序序列中的最小值找到,再将其和待排序序列的第一个值进行交换(换句话说就是相当于每一趟都把当前最小的值挪动到最前面)-》每一趟我们要找的是最小值的位置,而不是最小值是多少。

  • 左边:已排序区间
  • 右边:未排序区间

逻辑:

起初默认原始数据全部是未排序序列。

代码实现:

//选择排序
void Select_Sort(int arr[], int len) {
	for (int i = 0;i < len-1;i++) {//控制趟数
		int min =i;
		for (int j = i + 1;j < len;j++) {//控制的是这一趟待排序序列值的遍历,从而找到待排序序列最小值的所在位置
			if (arr[j] < arr[min]) {
				min = j;
			}
		}
	

		if (min!=i) {//判断待排序序列最小值和其第一个值是否是同一个值
			int temp = arr[min];
			arr[min] = arr[i];
			arr[i] = temp;
		}
	}
}

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/2401_89246663/article/details/162789364

文章来源crawl

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--