import java.util.Scanner;
public class QuickSort_BinarySearch {
public void Scanner() {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] num = new int[n];
for (int i = 0; i < n; i++){
num[i] = scanner.nextInt();
}
out(num);
quickSort(num, 0 , n-1);
out(num);
int target = scanner.nextInt();
System.out.println(binarySearch(num, target));
}
// 快排
public void quickSort(int[] num, int left, int right) {
if (left > right) {
return;
}
int i = left;
int j = right;
int flag = num[left];
while (i != j) {
while (num[j] > flag && i < j) {
j--;
}
while (num[i] <= flag && i < j) {
i++;
}
int temp;
if (i < j) {
temp = num[j];
num[j] = num[i];
num[i] = temp;
}
}
num[left] = num[i];
num[i] = flag;
quickSort(num, left, i - 1);
quickSort(num, i + 1, right);
}
// 二分查找
public int binarySearch(int[] num, int target) {
int left = 0;
int right = num.length - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (num[mid] == target) {
return mid;
} else if (num[mid] < target) {
left = mid + 1;
} else if (num[mid] > target) {
right = mid - 1;
}
}
return -1;
}
public void out(int[] num) {
System.out.println();
for (int i = 0; i < num.length; i++) {
System.out.print(num[i] + "\t");
}
}
public static void main(String[] args) {
new QuickSort_BinarySearch().Scanner();
}
}
05-04
976
