9.5 排序: (視頻下載) (全部書籍)有一種排序的方法,非常好理解,詳見本題的步驟,先找出最大值和最小值,把最小值列印出來後,把它存在另一個數組b當中,再刪除此最小值,之後再來一次找出最小值,列印出最小值以後,再把它存在另一個數組b當中,再刪除此最小值,這樣迴圈往複,直到做完,你就會發覺,你已經 ...
9.5 排序: (視頻下載) (全部書籍)有一種排序的方法,非常好理解,詳見本題的步驟,先找出最大值和最小值,把最小值列印出來後,把它存在另一個數組b當中,再刪除此最小值,之後再來一次找出最小值,列印出最小值以後,再把它存在另一個數組b當中,再刪除此最小值,這樣迴圈往複,直到做完,你就會發覺,你已經把排了序數放在b數組當中了,而這裡的徹底刪除最小值的方法就是用比最大值還大一的數來取代最小值。(自己想想為什麼?)參考後面的答案你會發覺,按照下麵的四步,你已經把一個數組排序了。 i)make a method called getMin to find the minimal value of the array. ii)make a method called getMax to find the maximum value of the array. iii) replace the minimal value with the maximum+1. iiii) sort an array.
public class Test {
static int minPosition=0;//用這個全局變數來記錄最小數的位置索引,
public static void main(String[] args) {
int[] a = {6, 12, 7, 23, 4};
int max = getMax(a);
int[] b = new int[a.length];
for (int j = 0; j < a.length; j++) {
int min = getMin(a);
/*把a數組當中最小的值,馬克-to-win給替換成max+1,這樣就相當於把原來的最小值從這個數組當中徹底清除掉了。整個迴圈做完,a數組就徹底廢了。*/
a[minPosition] = max + 1;
minPosition=0;//把minPosition重置一下, 因為最小的位置已經不是這了。
b[j] = min;//用此方法a數組當中的數就一個一個從小到大搗到b數組當中了
}
for (int j = 0; j < a.length; j++) System.out.println(b[j]);
}
static int getMax(int[] a) {
int max=a[0];
for (int i = 1; i < a.length ; i++) {
if(max<a[i])
{
max=a[i];
}
}
return max;
}
static int getMin(int[] a) {
int min=a[0];
for (int i = 1; i < a.length ; i++) {
if(min>a[i])
{
min=a[i];
。。。。。。。。。。。。。。