用matlab程式冒泡法對數由小到大排序

2021-03-06 14:24:58 字數 3840 閱讀 1706

1樓:藍色大象橡皮擦

冒泡法對10個數由小到大排序:

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

a%未排序前原始資料

n = 10;%陣列長度

for j = 1: n-1

for i= 1:n-1

if a(i)>a(i+1)

c = a(i);

a(i) = a(i+1);

a(i+1) = c;

endend

enda %排序後陣列顯示

資料拓展

冒泡法排序原理:例如有一組數為12,23,1,4,2,6。使用氣泡排序方法使這組數從小到大排列。

首先12和23比較,12<23,則位置不變;接著23和1比較,因為23>1,所以交換23和1的位置,這組數這時是12

1 23 4 2 6;

然後比較23和4,因為23>4,所以交換23和4,這組數變為12 1 4 23 2

6;然後比較23和2,23>2,再交換,變為12 1 4 2 23 6;然後比較23和6,23>6,再交換,最後為12 1 4 2 6

23。這就叫經過了一趟排序,即相鄰兩數比較,大的放在後面,經過一趟排序後,最大的數就冒泡到最後面了。然後再對前n-1個數進行第二趟排序,排序後第二大的數就放在了第n-1個位置;最後經過n-1趟排序後整個陣列就有序了。

matlab是美國mathworks公司出品的商業數學軟體,用於演算法開發、資料視覺化、資料分析以及數值計算的高階技術計算語言和互動式環境,主要包括matlab和simulink兩大部分。

matlab是matrix&laboratory兩個詞的組合,意為矩陣工廠(矩陣實驗室)。是由美國mathworks公司發布的主要面對科學計算、視覺化以及互動式程式設計的高科技計算環境。

它將數值分析、矩陣計算、科學資料視覺化以及非線性動態系統的建模和**等諸多強大功能整合在乙個易於使用的視窗環境中,為科學研究、工程設計以及必須進行有效數值計算的眾多科學領域提供了一種全面的解決方案,代表了當今國際科學計算軟體的先進水平。

2樓:匿名使用者

matlab編寫的冒泡法排序程式,可輸入多個數排序。

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

n=length(a);

i=1;j=1;

for j=1:n

for i=2:n

if a(i-1)

b=a(i);

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

a(i-1)=b;

endend

n=n-1;

enda

3樓:匿名使用者

a = rand(1,10);%隨機生成一組數a%未排序前原始資料

n = length(a);%陣列程度

for j = 1: n-1

for i= 1:n-1

if a(i)>a(i+1)

c = a(i);

a(i) = a(i+1);

a(i+1) = c;

endend

enda %排序後陣列顯示

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

希望樓主自己體會 並改進。

用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樓:匿名使用者

h=10*rand(1,10); %給定

baidu10個數

zhi的dao矩回陣答

for i=1:10

for j=10:-1:i+1

if h(j-1)>h(j)

t=h(j);h(j)=h(j-1);

h(j-1)=t;

endend

enddisp(h)

8樓:匿名使用者

var a = ;

for(var i=0;i

參考下吧

9樓:霸爸爸丶

ahpu???方???

matlab對10個隨機數進行從大到小的排序

10樓:

a=rand(1,3) %生成1行3列的0~1之間的隨機數

fliplr(sort(a)) %對a進行從大到小排序

%這應該是最簡單的了

11樓:匿名使用者

在命令視窗輸入:

a=fix(10*rand(1,10));

sort(a,'descend');

12樓:匿名使用者

sort(rand(1,10),'descend')

關於matlab的氣泡排序法

13樓:匿名使用者

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排序

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

定義函式void sort,用冒泡法對陣列a中的元素排序。自

public static void exchange double a,double b public void sort double a i while count 0 i主要的bai方法是這兩du個,根據你的zhi需dao要再修飾一下內就是了容啊。c語言程式設計問題問題描述 定義函式void...

C語言題目 用冒泡法對任意輸入的整數由小到大的順序排

1 新建乙個工程和.c檔案。2 定義變數型別。3 用乙個for語句遍歷整個陣列。4 引入乙個子函式,該子函式的作用是調整陣列元素的順序,使之由小到大排列。5 最後通過for函式一次輸出調整後的陣列元素。6 介紹一下子函式的實現語句,首先定義子函式。7 定義變數型別。8 該子函式實現順序的調整。9 編...

利用冒泡法對數排序,當所有數有序後,立即終止排序

用改進型氣泡排序法對一維整型陣列中的二十個數公升序排序 include include int main if flag 0 break printf the sequence after sort is n for i 0 i 20 i printf 5d a i printf n system ...