码迷,mamicode.com
首页 > 编程语言 > 详细

递归——简单选择排序

时间:2019-10-03 20:19:18      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:main   递归   print   printf   tmp   div   sort   记录   信息   

1、排序过程:

将待排序列存放在数组a[n]中。

第一次从a[1]开始,查找比a[0]小的元素,如果存在此元素,则将元素的位置信息记录下来,运用此信息判断查找到的元素是否为a[0],如果不是,则将a[0]与此最小元素交换值的大小。

第二次从a[2]开始,查找比a[1]小的元素.......

........

........

进行n-1次后,算法结束。

2、程序设计:

#include<stdio.h>            
void disp(int a[],int n){//参数为数组和数组中元素的个数 
    for(int i=0;i<n;i++)// 
    printf("%d\t",a[i]);
    printf("\n"); 
}
void SelectSort(int a[],int n,int i){
       int j,k,tmp;
       if(i==n-1) return;//递归出口
       else{
           k=i;
           for(j=i+1;j<n;j++)
           if(a[j]<a[k])//如果存在比a[k]小的数字
           k=j;//将j位置信息记录下来,直到末尾,即k为从(i+1)到末尾的所有数字的最小值的元素位置 
       }
       if(k!=i){
           tmp=a[i];
           a[i]=a[k];
           a[k]=tmp;
       }  
       SelectSort(a,n,i+1);
}
main(){
 int a[]={2,3,5,6,1,2,435,23,9,234};
 printf("排序前:");
 disp(a,10);
 SelectSort(a,10,0);
 printf("排序后:");
 disp(a,10); 
}

 

递归——简单选择排序

标签:main   递归   print   printf   tmp   div   sort   记录   信息   

原文地址:https://www.cnblogs.com/zhai1997/p/11620281.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!