package java_huaweijishi;
import java.util.Scanner;
/**
* 题目:对于随机产生的整形数字(0-1000)排序去重
* @author hexiaoli
*思考:1)去重(重复的置为1001)
* 2)排序(相应的算法)
*/
public class RandomNumberInDe {
public static void repeatDelete(int [] arr) {
for(int i=0;i<arr.length-1;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]==arr[j]){
arr[j] = 1001;
}
}
}
}
public static void quickSort(int[] arr,int low,int high){
int i,j,temp,t;
if(low>high){
return;
}
i=low;
j=high;
temp = arr[low];//temp就是基准位
while (i<j) {
//先看右边,依次往左递减
while (temp<=arr[j]&&(i<j)) {
j--;
}
//再看左边,依次往右递增
while (temp>=arr[i]&&i<j) {
i++;
}
//如果满足条件则交换
if (i<j) {
t = arr[j];
arr[j] = arr[i];
arr[i] = t;
}
}
//最后将基准为与i和j相等位置的数字交换
arr[low] = arr[j];
arr[j] = temp;
//递归调用左半数组
quickSort(arr, low, j-1);
//递归调用右半数组
quickSort(arr, j+1, high);
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int num;
int[] arr;
while(input.hasNext()){
num = input.nextInt();
arr = new int[num];
for(int i=0;i<num;i++){
arr[i]=input.nextInt();
}
repeatDelete(arr);
quickSort(arr,0,num-1);
//打印
for(int i=0;(i<arr.length)&&(arr[i]<1001);i++){
System.out.println(arr[i]);
}
}
input.close();
}
}
华为机试(3)明明的随机数
猜你喜欢
转载自blog.csdn.net/hxl0925/article/details/89340815
今日推荐
周排行