關於氣泡排序,三種寫法

2021-08-21 12:36:12 字數 744 閱讀 5321

最近寫乙個簡單的排序,就用冒泡就行,結果忘了。於是就重新思考寫了一下。

隨手寫出乙個,竟然寫完後有點懵了,到底寫的對不對呢。為方便,用matlab進行驗證,並檢視了網上流行的寫法。

都寫在下面,其中,自認為第二種為最容易理解。當然,3種寫法,交換次數完全相同,交換之後結果完全相同。

程式如下

clc;clear all;close all

n=2000;

b = rand(1,n);

%% 自己以前寫的排序演算法,但自己已經搞不清原理了

a=b;num1=0;

for i=1:n

for j=1:i

if a(i)a(j)

t=a(i);

a(i) = a(j);

a(j) = t;

num2 = num2+1;

endend

enda2=a;

%% 網上的氣泡排序

a=b;num3=0;

for i=1:n-1

for j=1:n-i

if a(j)>a(j+1)

t=a(j+1);

a(j+1) = a(j);

a(j) = t;

num3 = num3+1;

endend

enda3=a;

[num1,num2,num3]

執行結果      981998      981998      981998

三種氣泡排序

package com.wxh617.sort public class bubblesort public static void main string args 1.最簡單的氣泡排序演算法,沒有技術含量 本例中排序6趟 public static void bubblesort1 int a ...

(排序)氣泡排序的三種實現

主要內容 1 氣泡排序 2 氣泡排序實現1 3 氣泡排序實現2 4 氣泡排序實現3 氣泡排序是簡單的一種排序方法,效率低下,複雜度為o n 2 其具體的演算法流程如下 1 演算法需要對陣列遍歷n 1遍 2 在每一次遍歷中,比較前後相鄰元素的大小,如果第乙個比第二個大,則交換他們,這樣第一次遍歷之後陣...

氣泡排序三種實現方法

氣泡排序是非常容易理解和實現,以從小到大排序舉例 設陣列長度為n。1 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。2 這樣對陣列的第 0個資料到 n 1個資料進行一次遍歷後,最大的乙個資料就 沉 到陣列第 n 1個位置。3 n n 1 如果n不為0 就重複前面二步,否則排序...