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

2021-03-04 09:00:23 字數 2770 閱讀 2676

1樓:匿名使用者

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中氣泡排序法,要求對輸入的陣列元素進行排序

2樓:匿名使用者

先建乙個函

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)

3樓:風兒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 程式 冒泡法對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次,可以有一些改進的方法,比如加入標誌位,如果在一次迴圈中標誌位不變,則停止迴圈。

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

c 氣泡排序法,C 氣泡排序方法

define true 1 define false 0 typedef int keytype typedef struct recordtype void bubblesort recordtype r,int length include void reversal int x,int n i...

C語言 編寫函式用氣泡排序法對陣列中的資料進行從小到大的排序

int i,j,temp for i 0 ia j 1 之間寫這個 編寫函式用氣泡排序法對陣列中的n個資料進行從小到大的排序。1 新建乙個163.php。2 輸入php網頁的結構 3 宣告php與瀏覽器互動的檔案型別和編碼。4 使用 array 函式定義乙個 numbers陣列。5 使用 sort ...

C語言程式題 用氣泡排序法對整數按照由小到大的順序進行

include stdio.h void main printf the result for i 9 i 0 i for i 0 i 10 i printf n include void main for i 0 i 10 i printf 4d a i c語言程式設計題 分別用冒泡法和選擇法對輸...