1.整一个数组a,是偶数在前,奇数在后
方法一:
新建一个数组b,查找数组a中的偶数和奇数,让其存于数组b中(偶数从前往后(0—-b.length-1),奇数从后往前(b.length-1到0))
import java.util.Arrays;
public class find{
public static void main(String[] args){
int[] a={1,2,3,4,5,6,7,8,9,10,18,23};
System.out.println(Arrays.toString(a));
int[] m=Partition(a);
System.out.println(Arrays.toString(m));
}
public static int[] Partition(int[] b){
int[] c=new int[b.length];
int j=0;
int n=b.length-1;
while(j<=n){
for(int i=0;i<b.length;i++){
if(b[i]%2==0){
c[j]=b[i];
j++;
}
if(b[i]%2!=0){
c[n]=b[i];
n--;
}
}
}
return c;
}
}
结果:
方法二:
//[begin,end]是未判断的数
//[0,begin]偶数
//[end,a.length-1]奇数
import java.util.Arrays;
public class find{
public static void main(String[] args){
int[] a={1,2,3,4,5,6,7,8,9,10,11,13};
Partition(a);
System.out.println(Arrays.toString(a));
}
public static void swap(int[] a,int i,int j){
int t=a[i];
a[i]=a[j];
a[j]=t;
}
public static int[] Partition(int[] nums) {
int begin = 0;
int end = nums.length - 1;
while (begin < end) {
if((begin < end) && (nums[begin] % 2 == 0)) {
begin++;
}
if ((begin < end) && (nums[end] % 2 != 0)){
end--;
}
swap(nums, begin, end);
}
return nums;
}
}
结果:
方法三:
//[0,d]偶数
//[d,i]奇数
//[i,a.length-1]未判断
import java.util.Arrays;
public class find{
public static void main(String[] args){
int[] a={1,2,3,4,5,6,7,8,9};
Partition(a);
System.out.println(Arrays.toString(a));
}
public static int[] Partition(int[] b){
int i=0;
int d=0;
for( i=0;i<b.length;i++){
if(b[i]%2==0){
swap(b,i,d);
d++;
}
}
return b;
}
public static void swap(int[] a,int i,int j){
int t=a[i];
a[i]=a[j];
a[j]=t;
}
}
结果:
2.去掉一个最大值,去掉一个最小值,求平均值
public class find{
public static double average(int[] a){
double s=0;
int max=a[0];
int min=a[0];
for(int i=0;i<a.length;i++){
s+=a[i];
if(a[i]>max){
max=a[i];
}
if(a[i]<min){
min=a[i];
}
}
s=s-max-min;
return s/(a.length-2);
}
public static void main(String[] args){
int[] a={4,6,9,8,2,3};
System.out.println(average(a));
}
}
结果:
3.数组排序
import java.util.Arrays;
public class find{
public static void main(String[] args) {
int[] a = { 1, 2, 3, 4, 5, 6, 7 };
int[] b = { 7, 6, 5, 4, 3, 2, 1 };
int[] c = { 3, 5, 2, 4, 1, 7, 6 };
int[] d = { 3, 3, 3, 3, 3, 3, 3 };
testBubbleSort(a);
testBubbleSort(b);
testBubbleSort(c);
testBubbleSort(d);
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(b));
System.out.println(Arrays.toString(c));
System.out.println(Arrays.toString(d));
}
public static void swap(int[] a,int i,int j){
int t=a[i];
a[i]=a[j];
a[j]=t;
}
public static int[] testBubbleSort(int[] a){
for(int i=0;i<a.length;i++){
for(int j=1;j<a.length-i;j++){
if(a[j-1]>a[j]){
swap(a,j-1,j);
}
}
}
return a;
}
}
结果: