python java氣泡排序
阿新 • • 發佈:2018-12-01
氣泡排序:將陣列相鄰的元素值一次比較,把大的值放在後面的元素中,陣列迴圈一圈後,則把最大元素值互換到了最後一個元素中。陣列再迴圈一圈後,把第二大的元素值互換到了倒數第二個元素中。按照這種方式,陣列迴圈多圈以後,就完成了陣列元素的排序。
1.使用for迴圈(外層迴圈),來指定陣列要迴圈的圈數(陣列迴圈的圈數為陣列長度-1)
2.在每一圈中,通過for迴圈(內層迴圈)來完成相鄰的元素值依次比較,把大的值放後面的元素中
3.每圈內層迴圈的次數,由第幾圈迴圈來決定。
a) 進行第一圈元素比較時,內層迴圈次數為陣列長度-1
b) 進行第二圈元素比較時,內層迴圈次數為陣列長度-2
c) 依次類推,得出結論:進行第n圈元素比較時,內層迴圈次數為陣列長度-n
JAVA程式碼如下:
//氣泡排序 public static void bubbleSort(int[] arr) { //功能 //外層迴圈用來控制陣列迴圈的圈數 for (int i = 0; i<arr.length-1;i++) { //j<arr.lenth-1為了避免角標越界 //j<arr.lenth-1-i 為了比較效率,避免重複比較 //內層迴圈用來完成元素值比較,把大的元素值互換到後面 for (int j =0;j<arr.length-1-i;j++) { if (arr[j]>arr[j+1]) { int temp =arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } }
python程式碼如下:
list=[4,3,2,1]
index=len(list)
for i in range(index-1):
for j in range(index-1-i):
if list[j]>list[j+1]:
list[j],list[j+1]=list[j+1],list[j]
print(list)
氣泡排序個人理解,例如一個數組,有5個數。我就迴圈5次,第一次取整個陣列中,最大的數,第二次取整個陣列中第二大的數。整個陣列有多少數字,我就迴圈多少次。