zoukankan      html  css  js  c++  java
  • n个数连接得到最小或最大的多位整数(携程)

    package numCombine;
    
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.Comparator;
    
    /**
     * n个数连接得到最小或最大的多位整数(携程)
     * @author root
     *
     */
    public class NumCombine {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int data[] = {13,343,312,3};
    		fun2(data);
    	}
    	//使用java内置sort,构造比较器
    	public static void fun1(int data[]) {
    		String str_data[] = new String[data.length];
    		for(int i=0; i<data.length; i++){
    			str_data[i] = data[i]+"";
    		}
    		//排序
    		//Arrays.sort(str_data, Collections.reverseOrder());
    		Arrays.sort(str_data, new MyComprator());
    		for(int i=0; i<str_data.length; i++){
    			System.out.println(str_data[i]);
    		}
    	}
    	//自己编写快排进行排序
    	public static void fun2(int data[]) {
    		String str_data[] = new String[data.length];
    		for(int i=0; i<data.length; i++){
    			str_data[i] = data[i]+"";
    		}
    		//排序
    		quick_sort(str_data, 0, str_data.length-1);
    		for(int i=0; i<str_data.length; i++){
    			System.out.println(str_data[i]);
    		}
    	}
    	public static void quick_sort(String data[], int begin, int end) {
    		if(begin<end){
    			int mid = sort(data, begin, end);
    			quick_sort(data, begin, mid-1);
    			quick_sort(data, mid+1, end);
    		}
    	}
    	//快排
    	public static int sort(String data[], int begin, int end) {
    		String temp = data[begin];
    		while(begin<end){
    			while((data[end]+temp).compareTo(temp+data[end])<0 && begin<end){
    				end--;
    			}
    			data[begin] = data[end];
    			while((data[begin]+temp).compareTo(temp+data[begin])>0 && begin<end){
    				begin++;
    			}
    			data[end] = data[begin];
    		}
    		data[begin] = temp;
    		return begin;
    	}/**/
    }
    //比较器
    class MyComprator implements Comparator {
        public int compare(Object arg0, Object arg1) {
        	String t1=(String)arg0;
        	String t2=(String)arg1;
        	return -1*((t1+t2).compareTo(t2+t1));
        }
    }

  • 相关阅读:
    修正MYSQL错误数据的一个存储过程
    解决教学平台上文件中存在无扩展名BUG的办法
    使用C#解析XMIND文件格式
    ASPOSE的示例下载地址
    Https所涉及名词及相关后缀名解释
    Https单向认证和双向认证介绍
    转Postman请求Https接口
    About the Apple Captive Network Assistant
    python之numpy的基本使用
    Python Numpy 数组的初始化和基本操作
  • 原文地址:https://www.cnblogs.com/yan456jie/p/5369379.html
Copyright © 2011-2022 走看看