java 怎么交换同一数组里面的两部分元素的位置 像 {1,2,3,4,5,6} 最后结果是{4
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 怎么交换同一数组里面的两部分元素的位置 像 {1,2,3,4,5,6} 最后结果是{4相关的知识,希望对你有一定的参考价值。
java 怎么交换同一数组里面的两部分元素的位置
像 {1,2,3,4,5,6}
最后结果是{4,5,6,1,2,3}把前半部分和后半部分交换
public static void main(String[] args)
int []arr= 1,2,3,4,5,6;
exchange(arr,3);
for (int i = 0; i < arr.length; i++)
System.out.println(arr[i]);
/**
* @param arr 需要交换的数组
* @param index 交换的位置
*/
private static void exchange(int[] arr,int index)
int []temp=new int[arr.length];
int t=0;
for (int i = index; i < arr.length; i++)
temp[t++]=arr[i];
for (int i = 0; i < arr.length-index; i++)
temp[t++]=arr[i];
for (int i = 0; i < temp.length; i++)
arr[i]=temp[i];
参考技术A
假设你的数组元素个数是偶数。。
i指向最开始的1,j指向中间元素(比如4),然后交换a[i]和a[j],然后i++和j++,再继续交换a[i]和a[j],一直重复到 j 达到最后。
void swap(int[] a)int i = 0, j = a.length / 2;
for(; j<a.length; i++, j++)
int tmp = a[i];
a[j] = tmp;
a[i] = a[j];
参考技术B import java.util.Arrays;
public class BaiduZhidao
/**
* @param args the command line arguments
*/
public int[] randomCommon(int min, int max, int n)
if (n > (max - min + 1) || max < min)
return null;
int[] result = new int[n];
int count = 0;
while (count < n)
int num = (int) (<a href="https://www.baidu.com/s?wd=Math.random&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dBP1N-njDsnAnsuHDvm1Ts0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtkrj61nHT4PWnLnHfkPHb3nH03" target="_blank" class="baidu-highlight">Math.random</a>() * (max - min)) + min;
boolean flag = true;
for (int j = 0; j < n; j++)
if (num == result[j])
flag = false;
break;
if (flag)
result[count] = num;
count++;
return result;
public static void main(String[] args)
int a[] = 1, 2, 3, 4, 5, 6;
int index[] = new int[3];
index = new BaiduZhidao().randomCommon(0, 7, 3);
int r1[] = new int[6];
int r2[] = new int[6];
int r3[] = new int[6];
int r4[] = new int[6];
for (int i = 0; i < index.length; i++)
index[i] = index[i] - 1;
<a href="https://www.baidu.com/s?wd=Arrays.sort&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1dBP1N-njDsnAnsuHDvm1Ts0AP8IA3qPjfsn1bkrjKxmLKz0ZNzUjdCIZwsrBtEXh9GuA7EQhF9pywdQhPEUiqkIyN1IA-EUBtkrj61nHT4PWnLnHfkPHb3nH03"target="_blank" class="baidu-highlight">Arrays.sort</a>(index);
r1 = Arrays.copyOf(a, a.length);
r2 = Arrays.copyOf(a, a.length);
r3 = Arrays.copyOf(a, a.length);
r4 = Arrays.copyOf(a, a.length);
r1[index[0]] = a[index[1]];
r1[index[1]] = a[index[0]];
r1[index[2]] = a[index[2]];
r2[index[0]] = a[index[1]];
r2[index[1]] = a[index[2]];
r2[index[2]] = a[index[0]];
r3[index[0]] = a[index[2]];
r3[index[1]] = a[index[0]];
r3[index[2]] = a[index[1]];
r4[index[0]] = a[index[2]];
r4[index[1]] = a[index[1]];
r4[index[2]] = a[index[0]];
for (int i = 0; i < r1.length; i++)
System.out.print(r1[i] + " ");
System.out.println();
for (int i = 0; i < r1.length; i++)
System.out.print(r2[i] + " ");
System.out.println();
for (int i = 0; i < r1.length; i++)
System.out.print(r3[i] + " ");
System.out.println();
for (int i = 0; i < r1.length; i++)
System.out.print(r4[i] + " ");
参考技术C public class Foo
public static void main(String[] args)
int[] n=1,2,3,4,5,6;
print(n);
change(n);
System.out.println();
print(n);
public static void change(int[] n)
if (n == null || n.length < 2)
return;
int index = n.length / 2 + n.length % 2;
for (int i = 0; i < n.length / 2; i++, index++)
int temp = n[i];
n[i] = n[index];
n[index] = temp;
public static void print(int[] n)
for(int i=0;i<n.length;i++)
System.out.print(n[i]+" ");
java 选择排序
基本思想:首先,找到数组中最小的那个元素,其次将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。再次,在剩下的元素中找到最小元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。
package com.test; import java.util.Arrays; public class SelectSort { public static void main(String[] args) { int test[] = {49,38,65,97,76,13,27,49}; sort(test); System.out.println(Arrays.toString(test)); } public static void sort(int[] a) { for (int i = 0; i < a.length; i ++) { int min = i; // 将当前下标定义为最小下标 int tmp = a[i]; for (int j = i + 1; j < a.length; j ++) { if (a[j] < tmp) { // a[j] < temp 从小到大排序;a[j] > temp 从大到小排序 tmp = a[j]; // 如果有小于当前最小值的关键字将此关键字的下标赋值给min min = j; } } if (min != i) { a[min] = a[i]; a[i] = tmp; } } } }
以上是关于java 怎么交换同一数组里面的两部分元素的位置 像 {1,2,3,4,5,6} 最后结果是{4的主要内容,如果未能解决你的问题,请参考以下文章