matlab如何将一个一维数组从大到小排列?

 我来答
兰婷集需
高赞答主

推荐于2019-10-28 · 大脑停止不了思考
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:15.4万
展开全部

matlab一维数组将数据从大到小排列使用矩阵排列,俗称“起泡法”,方法思想如下:

第一、用两个并列的for循环语句,在第二个for 语句中又嵌套了一个循环语句。第一个for语句用于输入10个元素的初值。第二个for语句用于排序。本程序的排序采用逐个比较的方法进行。

第二、在i次循环时,把第一个元素的下标i赋于p,而把该下标变量值a[i]赋于q。然后进入小循环,从a[i+1]起到最后一个元素止逐个与a[i]作比较,有比a[i]大者则将其下标送p,元素值送q。 一次循环结束后,p即为最大元素的下标,q则为该元素值。

第三若此时i≠p,说明p,q值均已不是进入小循环之前所赋之值,则交换a[i]和a[p]之值。 此时a[i]为已排序完毕的元素。输出该值之后转入下一次循环。对i+1以后各个元素排序。

在C语言中对数组排列也是可以的,代码如下:
include<stdio.h>
#include<stdlib.h>
main()
{
      int a[10],i,j,t;
      for(i=0;i<10;i++)
                       scanf("%d",&a[10]);
      for(i=0;i<9;i++)
      {for(j=0;j<9-i;j++)
       {
                         if(a[j]<a[j+1])
                         {t=a[j];a[j]=a[j+1];a[j+1]=t;}
       }
      }
      for(i=0;i<10;i++)
      printf("%d ",a[i]);
      getch();
      }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式