博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
选择排序
阅读量:3985 次
发布时间:2019-05-24

本文共 681 字,大约阅读时间需要 2 分钟。

选择排序---每次从未排序部分选择一个最大(或最小)的元素,放到排序部分。

思路:

首先:int t = n;//n为数组最大下标

1. 从右向左,前n-1个与第t个比较,如果大于第t个,就更新t的值,最后交换第t个与第n个元素(最大值(或最小值)放在了n位置)

2.  t = n - 1; 从右向左前n-2个元素与第t个元素比较,如果大于第t个元素的值,就更新t的值,最后交换t与n-2的元素(前n-1个中最大值放在了n-1位置)

3. 重复上述步骤,直到 n-i >0

选择排序代码示例

// sf.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include 
//选择排序void select(int *a, int n){ for (int i=n-1;i>=1;i--) { int t = i; for (int j=i-1;j>=0;j--) { if (a[j] > a[t]) { t = j; } } int temp = a[i]; a[i] = a[t]; a[t] = temp; }}int _tmain(int argc, _TCHAR* argv[]){ int a[10] = {54, 62, 34, 1, 38, 14, 78, 4, 65, 9}; select(a, 10); for (int i=0;i<10;i++) { printf("%d\n", a[i]); } system("pause"); return 0;}

转载地址:http://uzxui.baihongyu.com/

你可能感兴趣的文章
所谓的进步和提升,就是完成认知升级
查看>>
Web开发之路
查看>>
昨夜今晨最大八卦终于坐实——人类首次直接探测到了引力波
查看>>
年纪轻轻记忆力就衰退得厉害,我还有救吗?
查看>>
如何优雅、机智地和新公司谈薪水?
查看>>
为什么读了很多书,却学不到什么东西?
查看>>
长文干货:如何轻松应对工作中最棘手的13种场景?
查看>>
关于WebClient超时问题
查看>>
创业公司如何与巨头竞争?利用好这9大优势是关键
查看>>
读书 | 如何像沉迷游戏一样对工作上瘾?
查看>>
如何确保自己的Mac数据安全呢?这里有四个“小秘诀”
查看>>
如何用好碎片化时间,让思维更有效率?
查看>>
第一性原理:戳中问题本质的人是怎么思考的?
查看>>
No.147 - LeetCode1108
查看>>
No.148 - LeetCode771
查看>>
No.172 - LeetCode1301
查看>>
No.173 - LeetCode1304
查看>>
No.174 - LeetCode1305 - 合并两个搜索树
查看>>
No.175 - LeetCode1306
查看>>
No.176 - LeetCode1309
查看>>