首页 > 作文

C++递归实现选择排序算法

更新时间:2023-04-04 09:09:15 阅读: 评论:0

目录
基本思想举例完整代码

基本思想

每次找出最小元素,通过交换实现将其放在乱序的首位,直到所有元素都已经排好序。

举例

a[10] = { 3,1,6,4,8,2,10,7,9,5 } 为例

第一次选择排序:排位置0,元素1是位置0以后的最小元素,那么swap(a[0], a[1]),
即:1 3 6 4 8 2 10 7 9 5,那么位置0是福师大协和学院排好序的,位置0以后是乱序。

第二次选择排序:排位置1,元素1是位置1以后的最小元素,那么swap(a[1], a[5]),
即南瓜的作用和功效有哪些:1 2 6 4 8 3 10 7 9 5,那么位置1是排好序的,位置1以后是乱序。
… …

完整代码

//选择排序,编译环境 dev c++#include <stdio.h>#include <iostr怎么提高智商eam>using namespace std;void sort(int s,int t,int arr[])//对arr[s...t]进行选择排序 {if(s<t){int k = s;//记录当前最小元素下标,初始值为s for(int j = s + 1;j <= t;j++){if(arr[j] < arr[k])k = j; }//至此已经选出了最小元素的下标 if(k != s)//如果最小元素下标不是初始值,则交换 swap(arr[k],arr[s]); sort(s+1,t,arr);//数组arr的s位置已经排好序,接下来开始排s+1位置 }}int main(){int n;scanf("%d",&n); in斑羚飞渡t a[20] = { 0 };for(int i = 0;i < n;i++)scanf("%d",&a[i]);sort(0,n-1,a);for(int i = 0;i < n;i++)printf("%d ",a[i]); return 0; } 

到此这篇关于c++递归实现选择排序算法的文章就介绍奖学金到这了,更多相关c++选择排序内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 09:09:13,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/be514cb49b2d75c24d4d9debf7e88c13.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:C++递归实现选择排序算法.doc

本文 PDF 下载地址:C++递归实现选择排序算法.pdf

标签:位置   元素   最小   下标
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图