java数组排序源码_Java 数组工具类排序,最大值最小值等
public class ArrayUtils{
/**
* 返回數組最大值
*
* @param a
* @return
*/
public static int max(int[] a){
// 返回數組最大值
int x;
int aa[]=new int[a.length];
System.arraycopy(a,0,aa,0,a.length);
x=aa[0];
for(int i=1;i
if(aa[i]>x){
x=aa[i];
}
}
return x;
}
/**
* 返回數組最小值
*
* @param a
* @return
*/
public static int min(int[] a){
// 返回數組最小值
int x;
int aa[]=new int[a.length];
System.arraycopy(a,0,aa,0,a.length);
x=aa[0];
for(int i=1;i
if(aa[i]
x=aa[i];
}
}
return x;
}
/**
* 將一個數組的第N到M項由小到大排列,將排列后的結果返回
*
* @param aa
* @param N
* @param M
* @return
*/
public static double[] up_order(double[] aa,int N,int M){
// 將一個數組的第N到M項由小到大排列,將排列后的結果返回
double q[]=new double[M];
double[] a=new double[aa.length];
System.arraycopy(aa,0,a,0,aa.length);
for(int kk=0;kk
for(int k=N-1;k
if(a[k]>a[k+1]){
q[k]=a[k];
a[k]=a[k+1];
a[k+1]=q[k];
}
}
}
return a;
}
/**
* 將一個數組的第N到M項由大到小排列,將排列后的結果返回
*
* @param a
* @param N
* @param M
* @return
*/
public static double[] down_order(double[] a,int N,int M){
// 將一個數組的第N到M項由大到小排列,將排列后的結果返回
double[] q=new double[M];
double[] aa=new double[a.length];
System.arraycopy(a,0,aa,0,a.length);
for(int kk=0;kk
for(int k=N-1;k
if(aa[k]
q[k]=aa[k];
aa[k]=aa[k+1];
aa[k+1]=q[k];
}
}
}
return aa;
}
/**
* 將一個數組的第N與M項交換,將交換后的結果返回
*
* @param aa
* @param N
* @param M
* @return
*/
public static double[] change(double[] aa,int N,int M){
// 將一個數組的第N與M項交換,將交換后的結果返回
double[] a=new double[aa.length];
System.arraycopy(aa,0,a,0,aa.length);
double mid=a[M-1];
a[M-1]=a[N-1];
a[N-1]=mid;
return a;
}
/**
* 將一個數組從第N項到M項倒序交換,將排列后的結果返回
*
* @param aa
* @param N
* @param M
* @return
*/
public static double[] changeAll(double[] aa,int N,int M){
// 將一個數組從第N項到M項倒序交換,將排列后的結果返回
double[] a=new double[aa.length];
System.arraycopy(aa,0,a,0,aa.length);
double q[]=new double[M];
for(int k=N-1;k
q[k]=a[k];
a[k]=a[(M+N)-k-2];
a[(M+N)-k-2]=q[k];
}
return a;
}
/**
* 將M分解因式后賦值給數組
*
* @param M
* @return
*/
public static int[] factor(int M){
// 將M分解因式后賦值給數組a
int n=0;
int M1=M;
for(int k=2;k
if((M%k)==0){
n++;
M=M/k;
k=1;
}
}
n++;
int[] a=new int[n];
n=0;
for(int k=2;k
if((M1%k)==0){
a[n]=k;
n++;
M1=M1/k;
k=1;
}
}
a[n]=M1;
return a;
}
}
時間: 05-19
總結
以上是生活随笔為你收集整理的java数组排序源码_Java 数组工具类排序,最大值最小值等的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VBA错误处理
- 下一篇: jenkins war包_Jenkins