每次找出最小元素,通过交换实现将其放在乱序的首位,直到所有元素都已经排好序。
以 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 条评论) |