1. 程式人生 > >python java氣泡排序

python java氣泡排序

 

氣泡排序:將陣列相鄰的元素值一次比較,把大的值放在後面的元素中,陣列迴圈一圈後,則把最大元素值互換到了最後一個元素中。陣列再迴圈一圈後,把第二大的元素值互換到了倒數第二個元素中。按照這種方式,陣列迴圈多圈以後,就完成了陣列元素的排序。

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次,第一次取整個陣列中,最大的數,第二次取整個陣列中第二大的數。整個陣列有多少數字,我就迴圈多少次。