int [] array1 = {1,3,5,7,9,10,2,15,154,10,2,188,200};//定義一個數組,內容為混亂大小 int index = 0;//定義一個最大值或最小值的位置 int keyValue = 0;//定義最大值或最小值 int temp = 0;//定義一個臨時存儲變量 for(int i=0;i<array1.length;i++){//依次循環所有數據 index = i;//將i位置賦值給index keyValue = array1[index];//將i位置的值賦值給keyValue for(int y=i;y<array1.length;y++){//再次循環所有變量,不過這次是長度起始長度為i,最大長度不變 if(array1[y] < keyValue){//如果循環到的值小於i位置的值 index = y;//位置重新定義為當前位置 keyValue = array1[y];//最小值為當前位置 } } temp = array1[i];//將i位置的值賦值給臨時變量(最大值) array1[i] = array1[index];//將i位置重新定義為index(最小)位置的 array1[index] = temp;//將最大值重新定義給index位置,實現交換過程 } for(int p=0;p<array1.length;p++){ System.out.print(array1[p]+" "); }
<?php /* 選擇排序::對數組進行從小到大的排序 */ $array = array(2, 100, 3, 50, 48, 99, 502, 30, 27, 15, 16, 300, 11, 9, 5, 4, 42); for ($i = 0; $i < count($array); $i++) { $index = $i; //將index設置為當前循環步長 $keyValue = $array[$index]; //將最小值設置為當前 for ($y = $i; $y < count($array); $y++) { if($array[$y] < $keyValue){ //如果循環余下的數據,有比i更小的值 $index = $y; //記錄最小值的索引位置 $keyValue = $array[$index];//將最小值設置為最小值索引位置的值 } } $temp = $array[$i]; //將當前循環的值賦值給臨時變量(最大值) $array[$i] = $array[$index];//將最小值賦值給當前位置 $array[$index] = $temp;//將最小值的位置填充上最大值 } print_r($array); ?>