package 例题;
import java.util.Scanner;
public class whereIsTheMarble {
public static void main(String[] args) {
System.out.println("请输入大理石个数和猜测的个数:");
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
int n = sc.nextInt();
int[] arr = new int[m];
for (int i = 0; i < m; i++) { //输入大理石部分
arr[i] = sc.nextInt();
}
sort(arr);
for (int i = 0; i < n; i++) { //依次判断给定的数字是否在其中,并返回序号
int c = sc.nextInt();
int j ;
int t = -1;
for (j = 0; j < m; j++) {
if(c == arr[j]){
t = j+1;
break;
}
}
if(j < m){
System.out.println("大理石的数字是:"+c+",它的序数为:"+t);
}else{
System.out.println("大理石的数字为:"+c+",但它不在序列中!");
}
}
sc.close();
}
//快速排序部分
public static int spit(int[] arr,int start,int end){
int temp = arr[start];
int i = start;
int j = end;
while(i<j){
while(i<j && arr[j]>temp){
j--;
}
arr[i] = arr[j];
while(i<j && arr[i]<=temp){
i++;
}
arr[j] = arr[i];
}
arr[i] = temp;
return i;
}
public static void sort(int[] arr){
hurrySort(arr, 0,arr.length-1);
}
public static void hurrySort(int[] arr,int start,int end){
if(start<end){
int i = spit(arr,start,end);
hurrySort(arr,i+1,end);
hurrySort(arr,start,i-1);
}
}
}
运行: