用C语言编程:用选择法对10个整数排序,10个整数用scanf函数输入

用C语言编程:用选择法对10个整数排序,10个整数用scanf函数输入,第1张

1、打开visual C++ 6.0,准备一个空白的c语言文件,引入头文件,在main函数中定义变量和数组:

2、接下来用scanf函数输入的10个数,将输入的数存入到变量a中,接着进行比较排序,如果后一个数比前一个数大则利用中间变量t实现俩值互换,最后输出排序的结果:

3、编译运行程序,输入任意的10个数,回车后即可看到排序后的结果。以上就是c语言中选择排序的用法:

function u1=select(u)

%u是输入,u1是输出

%选择函数

%从i等于1到10计算适应度函数赋值给y

for i=1:10

y(i)=syd(u(i,:))

end

%求y的和

F=sum(y)

%并将适应度函数赋值除以他的和

P=y/F

s=0

%Q为累计概率

for i=1:10

s=s+P(i)

Q(i)=s

end

%找到y中的最大值的值m和位置I

[m,I]=max(y)

取输入的u总I的解赋值给u1中第9个解的位置

u1(9,:)=u(I,:)

取输入的u总I的解赋值给u1中第10个解的位置

u1(10,:)=u(I,:)

%得到一个8行1列的随机数(0-1之间)

r=rand(8,1)

%对应i等于1到8

for i=1:8

%如果r的第i个随机数小于Q的第一个值

if r(i)<Q(1)

%u的第一个解赋值给u1的第i个解

u1(i,:)=u(1,:)

%否则如果r的第i个随机数大于Q的第一个值,并且r的第i个随机数大于Q的第二个值

elseif r(i)>=Q(1)&r(i)<Q(2)

%u的第二个解赋值给u1的第i个解

u1(i,:)=u(2,:)

elseif r(i)>=Q(2)&r(i)<Q(3)

u1(i,:)=u(3,:)

elseif r(i)>=Q(3)&r(i)<Q(4)

u1(i,:)=u(4,:)

elseif r(i)>=Q(4)&r(i)<Q(5)

u1(i,:)=u(5,:)

elseif r(i)>=Q(5)&r(i)<Q(6)

u1(i,:)=u(6,:)

elseif r(i)>=Q(6)&r(i)<Q(7)

u1(i,:)=u(7,:)

elseif r(i)>=Q(7)&r(i)<Q(8)

u1(i,:)=u(8,:)

elseif r(i)>=Q(8)&r(i)<Q(9)

u1(i,:)=u(9,:)

else

u1(i,:)=u(10,:)

end

end

选择排序法:

public class TSort{

public static void main(String args[]){

int a[]={12,45,2,5,26,56}

for(int i=0i<a.length-1i++){

int t

for(int j=i+1j<a.lengthj++){

if(a[i]>a[j]){

t=a[i]a[i]=a[j]a[j]=t

}

}

}

for(int i=0i<a.lengthi++){

System.out.print(a[i]+" ")

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11847590.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存