Java中陣列的反轉

2021-08-22 00:20:54 字數 1164 閱讀 7221

陣列反轉就是將兩個對稱的位置的元素進行交換,在這裡提供兩種實現方式:

思路一(如下圖所示):

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 ...