急求幫助,matlab編寫程式起泡法對數由小到大排序

時間 2021-07-01 01:31:31

1樓:隱匿望默唸

步驟如下:

clcclear 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;

endend

ends %輸出排序後結果

拓展資料注意事項

1.安裝出錯時,可換註冊碼繼續安裝,到同一目錄;

2.【謹記】安裝路徑不要有中文名稱;

3.成功安裝完畢之後,如果遇到matlab啟動後,視窗在開啟一到兩秒後就自動關閉了, 可按以下方法試試:【假設你安裝的目錄為c:

\matlab\】(不過不建議安裝到c盤,那樣會影響系統速度!)

2樓:匿名使用者

clcclear 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;

endend

ends %輸出排序後結果

3樓:

>> a=[3,2,4,1,6,5,9,7,8,0];

>> for j=9:-1:1

for i=1:j

if(a(i)>a(i+1)) t=a(i);a(i)=a(i+1);a(i+1)=t;end

endend

>> a

a =0 1 2 3 4 5 6 7 8 9

用matlab寫個程式:將10個數字由小到大排序。

4樓:匿名使用者

%冒泡法排序

a=input('輸入資料:') ;

n=length(a); %求輸入數的個數i=1;j=1; %賦初值for j=1:n %進行n次才可互換完for i=2:n %比較相鄰兩數的大小if a(i-1)>a(i)

b=a(i);

a(i)=a(i-1);

a(i-1)=b; %比較相鄰兩數的大小,若前大後小則互換位置endend

n=n-1; %最後一位不用比較

enda

個人建議學matlab關鍵是懂c語言,然後再知道一些matlab的常用函式和與c的簡潔之處,在matlab中邊編寫程式邊除錯學的最快。

5樓:匿名使用者

a=[ 10 2 4 3 5 6 7 8 9 1 ] ; %這是你要輸入的10個數

sort(a) %將a升序排列(結果)〉〉a=

1 2 3 4 5 6 7 8 9 10%matlab優勢在於豐富的函式工具箱,比如c++十幾行的功能,在matlab中兩行就搞定了

6樓:璩利葉乙君

a=rand(1,10);%隨機生成一組數

a%未排序前原始資料n=

length(a);%陣列程度

forj=1:

n-1for

i=1:n-1

ifa(i)>a(i+1)c=

a(i);

a(i)

=a(i+1);

a(i+1)=c;

endend

enda

%排序後陣列顯示

這是最笨的方法,需要迴圈n*n次,可以有一些改進的方法,比如加入標誌位,如果在一次迴圈中標誌位不變,則停止迴圈。

希望樓主自己體會

並改進。

怎樣通過matlab用起泡法對一組資料進行從小到大排列

7樓:匿名使用者

舉個例子對a=[2 3 6 1 9 4]從小到大排序,最後顯示a=[1 2 3 4 6 9],滿意請採納,謝謝!

a=[2 3 6 1 9 4];

[k,p]=size(a);

for i=1:p

for j=(i+1):p

if a(i)>a(j)

b=a(i);

a(i)=a(j);

a(j)=b;

endend

enda

用matlab編輯一個十個數的氣泡排序

8樓:

**如下:

function n=bub(p)

n=p;

if length(size(p))~=2 | min(size(p))>1,

disp('引數必須為向量.');

else

for i=1:length(p)

for j=2:length(p)

if n(j-1)>n(j)

q=n(j-1);

n(j-1)=n(j);

n(j)=q;

endend

endendend

9樓:匿名使用者

使用for迴圈進行編寫

int a=;

for(int i=0;ia[j])

} for(int i=0;i

關於matlab的氣泡排序法

10樓:匿名使用者

function n=bub(p)

n=p;

if length(size(p))~=2 | min(size(p))>1,

disp('引數必須為bai向量.');

else

for i=1:length(p)

for j=2:length(p)

if n(j-1)>n(j)

q=n(j-1);

n(j-1)=n(j);

n(j)=q;

endend

endendend

有多餘的du比較.

可以把 for j=2:length(p)修改zhi成 for j=2:(length(p)-i+1)不過dao既然是bubble排序

版,就不要太在意效率,越簡單越好權.

編寫程式,求Sn a aa aaaaaaaaaa(n個a)的值,其中a是數字

魔天牙 include using namespace std sn a aa aaa n個a ua表示a un表示n 返回值為sn unsigned int sigman unsigned int ua,unsigned int un re n個a ua表示a un表示n uh表示a的位數 十進位...

matlab編寫程式編寫函式判斷兩個數是否互為質數

是兩個數互相不能整除的意思嗎?matlab裡編寫一個函式 實現判斷一個數是否是質數的功能 function isprime x if x 2 x 3 disp 這個數是質數 elseif x 1 mod x,2 0disp 這個數不是質數 elseif x 3 result 1 for i 3 2 ...

c語言編寫程式題求大神,C語言編寫程式題,求大神

菊隱逸者也 最簡單明瞭的程式如下 include main double x,y,max,min min max 0 for x 0 x 2 x 0.2 y 2 x x x 3 x x x x 6 x x x x x 4 x 50 printf 當x f時,y f n x,y if y max ma...