陣列反轉就是將兩個對稱的位置的元素進行交換,在這裡提供兩種實現方式:
思路一(如下圖所示):
1.對稱交換,所以需要兩個變數來記錄對稱的兩個位置2.一組交換完後,左邊的需要進行加1,右邊的就需要進行減1
3.如果是奇數的話,當兩個位置相等(min==max)就不會交換,
4.如果是偶數的話,當兩個數擦肩而過的時候,即左邊的跑到右邊,右邊的跑到左邊(min>max),在進行交換的話就變成原來的了
所以綜上所述,當min < max的時候,才進行交換。
思路二:
4個元素 ->交換2次5個元素 ->交換2次
6個元素 ->交換3次
交換的次數:array.length/2
package cn.itcast.day05.demo01;
public class demo08 ;
//方法一:
//定義乙個變數min用來記錄陣列左邊位置的索引,初始索引為0
//定義乙個變數max用來記錄陣列右邊位置的索引,初始索引為陣列長度-1
/*for(int min=0,max=arr.length-1;minarr[arr.length-1-0]
arr[1] <=> arr[arr.length-1-1]
arr[2] <=> arr[arr.length-1-2]
arr[i] <=> arr[arr.length-1-i]
*/int temp=arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=temp;
}system.out.println("反轉後的陣列:");
//使用單獨呼叫的方式呼叫列印方法
print(arr);
}//定義乙個列印的方法,用來列印陣列的每個元素
public static void print(int arr)}}
陣列反轉(中)
好了。我們這一次要用棧。棧是先進後出的。如果我們把一些元素 在這裡況且設為q 放入棧,然後不停地出棧,直到棧空了為止。出來的順序一定是反的。所以呢?可以利用本性質來進行解決。第一步 定義 棧 這種資料型別 我是用c語言實現的,c 中有stack,可以少打幾行 typedef struct stack...
演算法 java 實現陣列的反轉
陣列的反轉原理跟氣泡排序有點像,都是通過交換位置,只不過陣列的反轉是交換第乙個和最後乙個的位置,第二個和倒數第二個的位置,氣泡排序是互動相鄰兩個的位置.下面看一下具體的 實現 package test 陣列的反轉 public class testdemo for int elem arr 列印反轉...
Java反轉陣列元素
實現陣列逆序列印 reverse array 將陣列中第乙個元素和最後乙個元素交換位置 將第二個元素和倒數第二個交換位置 以此類推,中間的元素和自己交換,等價於沒動.public class assign04 int accarr reversearray arr for int i accarr ...