TOP

道一笔试题(编程部分)排序
2014-11-24 01:40:36 】 浏览:10091
Tags:试题 编程 部分 排序

import java.util.ArrayList;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class Text {
private static Random rd;
private static int[] array;
public static void main(String[] args){
Random r = new Random();
array = new int[50];
ArrayList list = new ArrayList();
for(int i=0; i<50; i++)
array = r.nextInt(15);
for(int i=0; i System.out.print(array+” “);
System.out.println();
int l = Locate(array,3,8);
for(int i=l; i list.add(array);
}
for(int i:list){
System.out.print(i+” “);
}


}


/*
用最快速的方法打乱一个数组,而且公平平均
*/
private static void Resort(int[] array){
rd = new Random();
int temp;
for(int i=0; i int l = rd.nextInt(array.length);
//int m = rd.nextInt(array.length);
temp = array[0];
array[0] = array[l];
array[l] = temp;
}


}


/*
给定一个数组,找出指定连续n个大于c的子数组所在位置
例如给定{5,8,9,1,5,8,6,8,4,2,3,6,4,9,8,3}
指定n=3,c=8
将返回子数组{4,2,3,6,4,9,8,3}所在位置
*/
private static int Locate(int[] array, int n, int c){
int[] list = new int[n];
int i=0;
int j=0;
for(i=0; i<=array.length-n; i++){
for(j=0; j list[j] = array[i+j];
if(list[j]>=c)
break;
}
if(j==n)
return i;
}
return -1;


}


/*快速排序*/
private static void QuickSort(int[] array, int x, int y){
int xx = x, yy = y;
int k = array[xx];
if(x>=y) return;
while(xx != yy){
while(xx=k) yy–;
array[xx] = array[yy];
while(xx array[yy] = array[xx];
}
array[xx] = k;
QuickSort(array, x,xx-1);
QuickSort(array, xx+1, y);


}
}



道一笔试题(编程部分)排序 https://www.cppentry.com/bencandy.php?fid=43&id=34235

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇技菱系统集成有限公司Java面试题 下一篇金蝶技术有限公司Java面试题