大小排序法,個人理解(沒有做優化)
隨便定義一個整型數組
1 int[] arr = {3,6,2,3,7,3,1,5,3,9,0,5};
這個數組的長度為12,索引為0~11
嘗試使用以下代碼將最大值替換到最後一位
for(int i = 0;i < arr.length-1; i++) { if(arr[i] > arr[i+1]){ int temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; } }
運行結果為633732539150為確保無誤,將此代碼循環執行几次,發現確實有效
數了一下替換為有序數組的次數,正好與數組的長度相同,即每個數組的元素都會與數組中的其他元素相比較並考慮是否替換
以下代碼為從大到小排序,反之比較大小則為從小到大排序
1 for(int j = 0;j < arr.length;j++) { 2 for(int i = 0;i < arr.length-1; i++) { 3 if(arr[i] < arr[i+1]){ 4 int temp = arr[i]; 5 arr[i] = arr[i+1]; 6 arr[i+1] = temp; 7 } 8 } 9 }
最後做一下總結,此方法可行,但是數組每次循環時,都會與其他元素進行比較(包括最大或最小的元素即已經排序好的元素),這個地方可以優化
因上努力,果上随缘