28,55,4,24,15,53,69,23,8 用简单选择排序算法
选择排序(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");
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。