步骤如下:
clc
clear all
s=[9 8 4 2 7 10 6 1 5 3]%要排序的数列
Ls=length(s)
for i=1:Ls-1
for j=1:Ls-i
if s(j)>s(j+1)
t=s(j)
s(j)=s(j+1)
s(j+1)=t
end
end
end
s %输出排序后结果轮睁裂
拓展资料
注意事项
1.安装出错时,可换注册码继续安装,到同一目录;
2.【谨记】安装路径不要有中文名称;
3.成功安装完毕之后,如果遇到matlab启动后,窗口在打开一到两秒后就自动关闭了, 可按以腊闭下方法试试:【假设你安装的目录为c:\MATLAB\】(不过不建议安装到C盘,那样会影响系统速度!)
参考资料来源:百度百科早嫌:MATLAB
首先看看起泡法:所谓起泡法,就是将相邻的两个数作比较,如果第一个数比第二个数大,则进行交换,将小的调到前头,这样一趟比较下来,则小数上浮,最大的数沉到最底。可以推知,要对10个数进行排序,则需要进行9趟比较,才能使10个数按大小顺序排列。每一趟都要进行两个数之间的比较,在喊慎第一趟中,要比较9次,第二趟刚8次,依此类推,可以得知,如果有n个数,则要进行n-1趟比较,在第1趟比较中要进行n-1次两两比较,在第 j 趟比较中要进行 n-j 次两两比较。据此,列出代码如下:#include <stdio.h>int main()
{
int i,j,temp,a[11]
printf("enter data:\n")
for (i=1i<=10i++)
{
printf("a[%d]=",i)
scanf("%d",&a[i])
}
printf("\n")
for (i=1i<=10i++)
printf("%5d",a[i])
printf("\n")
for (j=1j<=9j++)
for (i=1i<=9-ji++)
{
if (a[i]>a[i+1])
{
temp=a[i]
a[i]=a[i+1]
a[i+1]=temp
}
}
printf("\nthe sorted numbers:\n")
for (i=1i<=10i++)
printf("%5d",a[i])
getch()
return 0
}再来看看选择法:所谓选择法,就是将第一个数与余下的所有的数都进行比较,如果仔敏第一个数比其他数都小,则不进行交换,如果余下的数有一个以上比第一个数小,则将其中最大的一个与第一个数交换,这样一趟比较下来,第一个数就存放了最小的数。起泡法是最大数沉底,选择法是最小数坐头。据此,选择法代码如下:#include <stdio.h>
int main()
{
int i,j,min,temp,a[11]
printf("enter data:\n")
for (i=1i<=10i++)
{
printf("a[%d]=",i)
scanf("%d",&a[i])
}
printf("\n")
for (i=1i<=10i++)
printf("%5d",a[i])
printf("\n")
for (i=1i<=9i++)
{
min=i
for (j=i+1j<=10j++)
if (a[min]>a[j])
min=j
temp=a[i]
a[i]=a[min]
a[min]=temp
}
printf("\nthe sorted numbers:\n"郑戚敬)
for (i=1i<=10i++)
printf("%5d",a[i])
getch()
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)