冒泡,選擇,插入排序

2021-08-29 13:22:22 字數 1052 閱讀 1674

$arr=[8,3,1,2,5]   #定義全域性陣列,用於氣泡排序

$arr1=[9,6,7,1,4] #定義全域性陣列,用於選擇排序

$arr2=[10,25,7,2,5,1,30,28,21] #定義全域性陣列,用於插入排序

$temp=0 #全域性變數,用於交換數字

#氣泡排序

puts "氣泡排序\n"

=begin

upto迴圈控制冒泡次數

downto迴圈控制每次比較的次數

=end

1.upto(4)

}#用,將每個元素連線起來進行輸出

print $arr.join(","),"\n"

#選擇排序

puts "\n選擇排序\n"

=begin

外層upto迴圈選定每次待比較的元素

內層upto迴圈控制比較的元素

=end

0.upto(3)

}print $arr1.join(","),"\n"

#插入排序

puts "\n插入排序\n"

=begin

本人覺得氣泡排序其實是所有排序的乙個根本出發點。。。

無言選擇幾次,插入幾次,最終都是將最小的陣列長度-1個元素給放到最

前面就搞定了。。。當然插入排序是最難的,花了點時間

第乙個upto迴圈控制比較的次數。。。

第二個upto迴圈開始比較,一旦發現比前面乙個元素小,就停止此迴圈,同時記錄這個元素用其下標,轉向第三個upto迴圈依次向後挪位置就可以了,當然第一次挪位置後就要跳出來,不能再迴圈了。。。

=end

$num=0

$index=0

f=false

0.upto($arr2.length-1)

if f then

0.upto($index-1); $arr2[n]=$num;break;) if $arr2[n]>$num

}f=false

end}

print $arr2.join(","),"\n"

冒泡 選擇 插入排序

氣泡排序氣泡排序實現記口訣 n個數字來比較外層迴圈n 1,內層迴圈n 1 i public static void main string args for int i 0 ia j 1 第一層 第1次比較 8,7,6,5,4 第2次比較 7,8,6 5,4 第3次比較 7,6,8,5 4 第4次比...

氣泡排序,選擇排序,插入排序

氣泡排序,選擇排序,插入排序 小規模的檔案以及基本有序的檔案,插入排序的效能比快速排序的效能更為有效一些,實際上,插入排序通常也做快速排序實現的一部分。1 氣泡排序 packagedatastrut public classbubblesort public voidinsert longvalue...

選擇排序 , 插入排序 , 氣泡排序

編寫 include void println int array,int len 列印給定長度的陣列 printf n void swap int array,int i,int j 交換陣列中兩個位置的元素 void selectionsort int array,int len o n n 對...