陣列的反序
準備作業
public class InvertedSequence {
public static void main(String[] args) {
//inverted sequence是反序的意思
int[] a={2,77,-4,6,11};
System.out.println("原陣列如下所示:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+"\t");
}
System.out.println();//換行
}
}
A.陣列的反序輸出
1.思路分析:
? 思路:把陣列從最后一個位置開始遍歷輸出即可
2.核心代碼
System.out.println("陣列的反序輸出(以奇數個資料為例)如下所示:");
for (int i = a.length-1; i >=0; i--) {
//注意:陣列的最后一個位置為陣列長度-1,因為陣列的下標是從0開始的
System.out.print(a[i]+"\t");
}
3.運行截圖

B.原陣列變成反序后的陣列
1.思路分析:
//分析:第一次拿第一個與最后一個交換,第二次拿第二個與倒數第二個交換
// 依次類推下去,即第i個元素與第a.length-1-i個元素互換
// 原陣列就可以反序了,
// 那交換次數又怎么得到呢?
// 當陣列長度為3時,交換次數很顯然為1次,當陣列長度為4時,交換次數為2
// 當陣列長度為1時,交換次數很顯然為0次;
// 當陣列長度為5時,交換次數很顯然為2次,當陣列長度為6時,交換次數為3
// 由上面可以推出:無論陣列長度是奇數還是偶數,它的交換的次數都是陣列長度/2
// 注意:整形資料進行/運算會自動舍棄小數
//思路為:設定一個回圈,初始為0,回圈次數為陣列長度/2,
// 回圈體里面的內容是進行第i個元素與第a.length-1-i的互換
2.核心代碼:
for (int i = 0; i < a.length/2; i++) {
int temp=a[i];//temp定義在里面的好處是生命周期短一些,然后能及時被gc機制處理
a[i]=a[a.length-1-i];
a[a.length-1-i]=temp;
}
System.out.println("反序后的陣列(以奇數個資料為例)如下所示:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+"\t");
}
3.運行截圖

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/227640.html
標籤:Java
上一篇:Java 列舉 enum 詳解
下一篇:08 選擇排序
