zoukankan      html  css  js  c++  java
  • 递归——简单选择排序

    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	",a[i]);
        printf("
    "); 
    }
    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); 
    }
  • 相关阅读:
    PHP输出日志,json美化
    php获取项目路径
    16进制颜色,正则
    doctrine/instantiator
    cn.archive.ubuntu.com 慢的问题
    yzalis/identicon 像素头像
    Shell 判断进程是否存在
    shell 2>&1
    shell 判断是否继续
    shell
  • 原文地址:https://www.cnblogs.com/zhai1997/p/11620281.html
Copyright © 2011-2022 走看看