matlab中氣泡排序法,要求對輸入的陣列元素進行排序

2021-04-13 01:50:05 字數 2923 閱讀 2284

1樓:匿名使用者

先建一個函

bai數du指令碼:

bubble.m

function [ x ] = bubble( x )if ~isvector(x)

error('bubble: `zhix` must be a vector.')

endn = length(x);

for j = 1:n

for i = 1:n-j

if x(i) > x(i+1)

t = x(i);

x(i) = x(i+1);

x(i+1) = t;

endend

endend

然後就dao可以呼叫內了,比如容:

x = randperm(10)

x = bubble(x)

2樓:風兒lamp沙兒

按從大到小排列

a= ;

for i=1:length(a)-1

for j=i+1:length(a)

if(a(i)

t=a(i);

a(i)=a(j);

a(j)=t;

endendend

關於matlab的氣泡排序法

3樓:匿名使用者

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

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

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

4樓:藍色大象橡皮擦

冒泡法對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公司釋出的主要面對科學計算、視覺化以及互動式程式設計的高科技計算環境。

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

5樓:匿名使用者

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

6樓:匿名使用者

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除了氣泡排序法,還有其他程式嗎,不用sort函式

7樓:匿名使用者

常用的排序方法有:直接插入排序,希爾排序,簡單選擇排序,快速排序,氣泡排序,歸併排序,基數排序等等,可以寫類c語言的matlab程式,希望對你有用。

用氣泡排序法對指定陣列中的元素從小到大進行排序

假設bai 數du組zhi 有dao 版10個數權 include int main int i,j,t for i 1 i 10 i for int k 0 k 10 k c語言程式設計題 題目描述 使用氣泡排序法對陣列元素從小到大進行排序,要求輸出每一趟排序後的陣列內容 5 include st...

用氣泡排序法將陣列a 101,3,2,5,6,7,4,9,10,8中的數進行從大到小進行排列,並輸出排好的陣列a

include int main i,j,t for i 1 i 9 i for j 0 j 9 j if a j for i 0 i 10 i printf d n a i return 0 include void main for i 0 i 9 i for i 0 i 10 i printf...

用氣泡排序法對輸入的整數按由小到大的順序進行排序,要求排序用名為sort的子函式完成,在主函式

用氣泡排序法對輸入的十個整數按由小到大的順序進行排序,要求排序用一個名為sort的子函式完成,在主函式中呼叫它完成排序,用指標實現引數的傳遞,最後輸出排序結果.c語言題目 用冒泡法對任意輸入的10個整數由小到大的順序排序 1 新建一個工程和.c檔案。2 定義變數型別。3 用一個for語句遍歷整個陣列...