例一
代碼如下 復制代碼 import java.lang.Math;import java.util.Scanner;class AarrayReverse{ public static void main(String args[]) { int a[]=new int[20]; for(int i=0;i<=15;i++) { Scanner sca=new Scanner(System.in); System.out. 當然這里的數組可以自己定義.循環的次數越多越好.. 例二 代碼如下 復制代碼 import java.util.Date;import java.util.Random;/** 隨即排列數組,給定一個數組,隨即排列其中的元素,目前主要有兩種方法*/public class RandomSort { public static void main(String args[]){int data[]=new int[]{1,42,51,62,8,94,23,13,40,5};//int p[]=getRandom(1,-8,100);//show(p);show(data);permuteBySort(data);show(data);randomizeInPlace(data);show(data);} /** 隨機排列數組,使用優先級方式,每個數組元素A[i] 對應一個優先級P[i],* 然后依據優先級對數組進行排序*/private static void permuteBySort(int[] data){int l(www.111cn.net)en=data.length;int len3=len*len*len;int P[]=getRandom(1,len3,len); //冒泡排序for(int i=len-1; i>0; i--){for(int j=0; j<i ; j++){if(P[j]>P[j+1]){int temp=data[j];data[j]=data[j+1];data[j+1]=temp; temp=P[j];P[j]=P[j+1];P[j+1]=temp; }}}}/** 元素A[i]是從 元素A[i]到A[n]中隨機選取的*/private static void randomizeInPlace(int[] data){Date dt=new Date();Random random=new Random(dt.getSeconds());int len=data.length;for(int i=0; i<len; i++){int pos=(int)(random.nextDouble()*(len-i+1)+i)-1;int temp=data[i];data[i]=data[pos];data[pos]=temp;}} /** 獲得在a到b之間的n個隨機數*/private static int[] getRandom(int a,int b,int n){if(a>b){int temp=a;a=b;b=temp;} Date dt=new Date();Random random=new Random(dt.getSeconds());int res[]=new int[n];for(int i=0; i<n; i++){res[i]=(int)(random.nextDouble()*(Math.abs(b-a)+1))+a;}return res;} private static void show(int[] data){System.out.println("========================");for(int i = 0; i < data.length; i++){System.out.print(data[i] + " ");}System.out.println();System.out.println("========================");}} from:http://www.111cn.net/jsp/Java/40825.htm
新聞熱點
疑難解答