前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数组选择排序

数组选择排序

作者头像
我与梦想有个约会
发布2023-10-20 17:05:40
1290
发布2023-10-20 17:05:40
举报
文章被收录于专栏:jiajia_dengjiajia_deng

选择排序的规则是让第 i 个元素分别于后边的元素进行比较,记录最小的元素的位置,遍历完成之后,进行交换。将数组中每一个元素进行处理后最终得出有序的数据。其交换步骤图如下(摘自 传智播客 教师课件):

2015-06-07_224448
2015-06-07_224448

【实现代码】

代码语言:javascript
复制
void select_sort(int* arr, int len)
{
// 选择排序
int swap;
// 外循环,i 的长度要小于总长度 - 1,最后一个值剩下的值一定是最大的
for (int i = 0; i < len - 1; i++)
{
// swap,用来记录最小值的下标,初始化让其等于 i
swap = i;
for (int j = i + 1; j < len; j++)
{
// 判断 j 下标的值是否小于 swap 下标的值
if (arr[j] < arr[swap])
// 如果小于则让 swap 重新记录当前最小下标 j 的值
swap = j;
}
// 如果 swap 与 i 相等证明位置没有移动过,所以不需要交换数据,否则交换
if (swap != i)
{
arr[i] = arr[i] ^ arr[swap];
arr[swap] = arr[i] ^ arr[swap];
arr[i] = arr[i] ^ arr[swap];
}
}
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【实现代码】
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档