1. 程式人生 > >JAVA Python 選擇排序

JAVA Python 選擇排序

選擇排序:每圈要比較的第一個元素與該元素後面的陣列元素依次比較到陣列的最後一個元素,把小的值放在第一個陣列元素中,陣列迴圈一圈後,則把最小元素值互換到了一個元素中。陣列再迴圈一圈後,把第二小的元素值互換到了第二個元素中。按照這種方式,陣列迴圈多圈以後,就完成了陣列元素的排序。

1.使用for迴圈(外層迴圈),指定陣列要迴圈的圈數(陣列迴圈的圈數為陣列長度-1)

2.在每一圈中,通過for迴圈(內層迴圈)完成陣列要比較的第一個元素與該元素後面的陣列元素依次比較到陣列的最後一個元素,把小的值放在第一個陣列元素中

3.在每一圈中,要參與比較的第一個元素由第幾圈迴圈來決定。

     a) 進行第一圈元素比較時,要比較的第一個元素為陣列第一個元素,即索引為0的元素

     b)進行第二圈元素比較時,要比較的第一個元素為陣列第二個元素,即索引為1的元素

     c) 依次類推,得到結論:進行第n圈元素比較時,要比較的第一個元素為陣列第n個元素,即陣列索引為n-1的元素

JAVA程式碼如下:

public static void selectSort(int[] arr) {
		//功能
		//外層迴圈來控制陣列迴圈的圈數
		for (int i =0;i<arr.length-1;i++) {
			//內層迴圈用來完成元素值比較,把小的元素互換到要比較的第一個元素中
			for (int j=i+1;j<arr.length;j++) {
				if (arr[i]>arr[j]) {
					int temp=arr[i];
					arr[i]=arr[j];
					arr[j]=temp;
				}
			}
		}
	}

python程式碼如下:

list=[4,3,6,2,8,1]
for i in range(len(list)-1):
    for j in range(i+1,len(list)):
        if list[i]>list[j]:
            list[i],list[j]=list[j],list[i]
print(list)