在由N个元素构成的集合S中,找出最小元素C,满足C=A-B,其中A,B是都集合S中的元素,没找到则返回-1

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));
    }

}

 

posted @ 2017-09-27 17:16  刘镇平Jasper  阅读(273)  评论(0编辑  收藏  举报