利用选择排序算法,对下面一组数进行排序(升序),并写出每趟排序结果:{49,38,65,97,76,13,27,59}

利用选择排序算法,对下面一组数进行排序(升序,从第一个数字开始),并写出每趟排序结果:
{49,38,65,97,76,13,27,59}

C语言实现冒泡排序
#include<stdio.h>
main(){
int myArray[]={49,38,65,97,76,13,27,59};
int i,j,temp;

for (i=1;i<8;i++) {

for (j=i+1; j<8; j++) {
if (myArray[j]>myArray[i]) {

temp=myArray[j];
myArray[j]=myArray[i];
myArray[i]=temp;

}
}

printf("第%d趟,%d",i+1,myArray[i]);
printf("\n");

}

}
运行结果为:
第一趟:13,38,65,97,76,49,27,59;
第二趟:13,27,65,97,76,49,38,59;
第三趟:13,27,38,97,76,49,65,59;
第四趟:13,27,38,49,76,97,65,59;
第五趟:13,27,38,49,59,97,65,76;
第六趟:13,27,38,49,59,65,97,76;
第七趟:13,27,38,49,59,65,76,97;
第八趟:13,27,38,49,59,65,76,97;

以下是用AS3.0语言写的:如果需要其它语言请说;

var myArray:Array=new Array(49,38,65,97,76,13,27,59);
var temp:Number;

for (var i:int=1; i<9; i++) {

for (var j:int=0; j<8; j++) {
if (myArray[j]>myArray[i]) {

temp=myArray[j];
myArray[j]=myArray[i-1];
myArray[i-1]=temp;

}
}

trace("第"+ i +"趟:"+myArray);

}
//第1趟:59,38,49,65,97,13,27,76
//第2趟:38,76,49,59,65,13,27,97
//第3趟:38,49,97,59,76,13,27,65
//第4趟:38,49,59,97,76,13,27,65
//第5趟:76,38,49,59,65,13,97,27
//第6趟:76,38,49,59,65,13,97,27
//第7趟:97,76,38,49,59,13,65,27
//第8趟:97,76,38,49,59,13,65,27
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-06
#include"stdio.h"
int a[]={49,38,65,97,76,13,27,59};
main()
{int i,j,k,temp;
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
{k=i;
for(j=i+1;j<sizeof(a)/sizeof(a[0]);j++)
if(a[k]>a[j]) k=j;
if(k!=i)
{temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
puts("从大到小排序后的数列为:\n");
for(i=0;i<sizeof(a)/sizeof(a[0]);i++)
{printf("%3d",a[i]);
}
}
运行结果为:第一趟:13,38,65,97,76,49,27,59;
第二趟:13,27,65,97,76,49,38,59;
第三趟:13,27,38,97,76,49,65,59;
第四趟:13,27,38,49,76,97,65,59;
第五趟:13,27,38,49,59,97,65,76;
第六趟:13,27,38,49,59,65,97,76;
第七趟:13,27,38,49,59,65,76,97;
第八趟:13,27,38,49,59,65,76,97;本回答被提问者和网友采纳
第2个回答  2011-01-06
这个在网上一搜一大把吧。还是先理解了原理才比较好。