package bianchengti; /* * 在由N个元素构成的集合S中,找出最小元素C,满足C=A-B, * 其中A,B是都集合S中的元素,没找到则返回-1 */ public class findMinValue { //快速排序 public static void sort(int a[], int low, int hight) { if (low > hight) { return; } int i, j, key; i = low; j = hight; key = a[i]; // 用第一个元素作为基准 while (i < j) { // 从表的两端交替向中间扫描 while (i < j && a[j] >= key) { j--; } if (i < j) { a[i] = a[j]; i++; } while (i < j && a[i] < key) { i++; } if (i < j) { a[j] = a[i]; j--; } } a[i] = key;//将基准数值替换回 a[i] sort(a, low, i - 1); //递归调用,把key前面的完成排序 sort(a, i + 1, hight); //递归调用,把key后面的完成排序 } public static int getResult(int a[]) { int min=a[0];//最小值 for (int i = a.length - 1; i > 1 ; i--) { for (int j = a.length - 1; j > 0; j--) { if (a[i] - a[j-1] ==min) { return min; } } } return -1; } public static void print(int src[]) { for (int i = 0; i < src.length; i++) { System.out.print(src[i] + " "); } System.out.println(); } public static void main(String[] args) { // TODO Auto-generated method stub int a[] = {6,2,7,3,8,9}; print(a); sort(a, 0, a.length - 1); print(a); System.out.println(getResult(a)); } }
时间: 2024-10-25 08:58:01