數組排序其實很簡單,但是小瘋因爲許久不用有些生疏,所以在這裏重溫一下,這裏有兩種簡單的冒泡和選擇。
一、冒泡排序
根據數組的長度循環遍歷,並判斷如果前一個值小於後一個值,那麼就把“後一個值”排列到“當前前一個值”的前面。代碼實現如下:
// 定義一個無序的整形數組
int arr[] = {25,29,13,10,12,14,41};
// 進行排序
for(int i = 0; i < arr.length; i++) {
for(int j = 0; j < arr.length - 1; j++) {
if(arr[j] > arr[j+1]) {
// 替換臨時變量
int temp;
// 把大的值放入中間變量
temp = arr[j];
// 把較小的值放入前一位
arr[j] = arr[j+1];
// 把較大的值放入後一位
arr[j+1] = temp;
}
}
}
通過FOR循環取出最後的排序。代碼實現如下:
// 遍歷數組,依次輸出
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
在main函數中,通過實例化別名點方法名的方式調用並打印出結果。就是想要的從小到大的順序
二選擇排序
根據數組的長度循環遍歷,並判斷如果第一個值大於後邊的值,就把小的值替換到前邊,依次篩選第一小的、第二小的……代碼實現如下:
// 定義一個無序的整形數組
int arr[] = {25,29,13,10,12,14,41};
// 進行排序
for(int i = 0; i < arr.length; i++) {
for(int j = i+1; j < arr.length - 1; j++) {
if(arr[i] > arr[j]) {
// 替換臨時變量
int temp;
// 把大的值放入中間變量
temp = arr[i];
// 把較小的值放入前一位
arr[i] = arr[j];
// 把較大的值放入後一位
arr[j] = temp;
}
}
}
通過循環輸出同冒泡一致!
當然關於排序算法還有幾種,有興趣的可以關注後續!!
關於冒泡排序,小瘋的代碼有問題,多做了多次無用循環,還好有一位朋友【qizhiyang】指點,在這裏要感謝一下,現修改代碼如下:
int arr[] = {25,29,13,10,12,14,41};
// 進行排序
for(int i = 0; i < arr.length - 1; i++) {
for(int j = 0; j < arr.length -i - 1; j++) {
if(arr[j] > arr[j+1]) {
// 替換臨時變量
int temp;
// 把大的值放入中間變量
temp = arr[j];
// 把較小的值放入前一位
arr[j] = arr[j+1];
// 把較大的值放入後一位
arr[j+1] = temp;
}
}
}
各位有興趣的可以比較一下看看其中的異同。
在這裏非常感謝大神【qizhiyang】的指點,希望能得到更多朋友的幫助