开发者社区> 问答> 正文

28,55,4,24,15,53,69,23,8 用简单选择排序算法

28,55,4,24,15,53,69,23,8 用简单选择排序算法

展开
收起
知与谁同 2018-07-17 19:59:46 1365 0
1 条回答
写回答
取消 提交回答
  • 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

    数据:28,55,4,24,15,53,69,23,8,按从小到大排序过程是

    第1趟排序结果为:
    4 55 28 24 15 53 69 23 8
    第2趟排序结果为:
    4 8 28 24 15 53 69 23 55
    第3趟排序结果为:
    4 8 15 24 28 53 69 23 55
    第4趟排序结果为:
    4 8 15 23 28 53 69 24 55
    第5趟排序结果为:
    4 8 15 23 24 53 69 28 55
    第6趟排序结果为:
    4 8 15 23 24 28 69 53 55
    第7趟排序结果为:
    4 8 15 23 24 28 53 69 55
    第8趟排序结果为:
    4 8 15 23 24 28 53 55 69
    最终排序结果为:
    4 8 15 23 24 28 53 55 69

     

    参考代码,C语言版本的 #include<stdio.h>
    #include<stdlib.h>
    void swap(int*a,int*b)
    {    
     int temp;    
     temp=*a;   
     *a=*b;    
     *b=temp;
    }
    void selectsort(int A[],int n)
    {    
     register int i,j,min,m;    
     for(i=0;i<n-1;i++)    
     {        
      min=i;//查找最小值        
      for(j=i+1;j<n;j++)        
      {            
       if(A[min]>A[j])            
       {                
        min=j;            
       }        
      }        
      if(min!=i)        
      {            
       swap(&A[min],&A[i]);            
       printf("第%d趟排序结果为:\n",i+1);            
       for(m=0;m<n;m++)             
       {                
        if(m>0)                
        {                    
         printf("");                
        }                
        printf("%d ",A[m]);            
       }            
       printf("\n");        
      }    
     }
    }

    void main()
    {
     int a[9]={28,55,4,24,15,53,69,23,8},i;
     selectsort(a,9);        
     printf("最终排序结果为:\n"); 
     for(i=0;i<9;i++)        
     {            
      if(i>0)
      {                
       printf("");            
      }            
      printf("%d ",a[i]);        
     }        
     printf("\n");
     system("pause");
    }

    2019-07-17 22:49:47
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载