选择排序的基本思想是
以数组arr[n]为例,每一趟(假设目前为第i趟)在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的值作为有序序列中第i个值。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。
简而言之,每次排序给当前位置找最小值。
选择排序的过程分析
第1趟,在待排序记录arr[1]~arr[n-1]中选出最小的记录,将它与r[0]交换;
第2趟,在待排序记录r[2]~r[n-1]中选出最小的记录,将它与r[1]交换;
以此类推,第i趟在待排序记录r[i]~r[n-1]中选出最小的记录,将它与r[i-1]交换,使有序序列不断增长直到全部排序完毕。
选择排序是和冒泡排序差不多的一种排序。和冒泡排序交换相连数据不一样的是,选择排序只有在确定了最小的数据之后,才会发生交换。
我们可以以下面一组数据作为测试:
2, 1, 5, 4, 9
第一次排序: 1, 2, 5, 4, 9
第二次排序: 1, 2, 5, 4, 9
第三次排序: 1, 2, 4, 5, 9
第四次排序: 1, 2, 4, 5, 9
代码:
//算法代码:
#include <stdio.h>
#include <time.h>
void select_sort(int * arr,

选择排序是一种简单直观的排序算法,通过n-i+1趟遍历找到最小元素并交换,逐步构建有序序列。时间复杂度为O(n^2),适合小规模数据排序。本文分析了选择排序过程,并提供了示例代码。
最低0.47元/天 解锁文章
18万+

被折叠的 条评论
为什么被折叠?



