码迷,mamicode.com
首页 > 编程语言 > 详细

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字的最小的一个

时间:2017-05-05 20:55:14      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:bind   version   排序   static   blog   代码   new   system   alt   

技术分享
/**
* @Version 1.0.0
* 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,
* 打印能拼接出的所有数字的最小的一个。例如输入{3,32,321,4},则打印最小的数字是
* 321323
*
* 其实就是一次排序,只是比较大小的方式与数值比较有所不同
* 这里采用冒泡排序的方式
*/
public class Pro33 {

@MyAnswer
public static void f(int array[]){
for(int i=0;i<array.length-1;i++){
int big=0;
for(int j=0;j<array.length-i;j++){
if(compare(String.valueOf(array[j]),String.valueOf(array[big]))>0){
big=j;
}
}
if(big!=array.length-i-1){
int temp=array[big];
array[big]=array[array.length-i-1];
array[array.length-i-1]=temp;
}
}
for(int a:array){
System.out.print(a+" ");
}
}
@MyAnswer
public static int compare(String a, String b){
String left=a+b;
String right=b+a;
for(int i=0;i<left.length()-1;i++){
if(left.charAt(i)>right.charAt(i)){
return 1;
}else if(left.charAt(i)<right.charAt(i)){
return -1;
}
}
return 0;
}

public static void main(String args []){
int array[]=/*{23,345, 121,42,1}*/{3,32,321,4};
Pro33.f(array);
}
}

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字的最小的一个

标签:bind   version   排序   static   blog   代码   new   system   alt   

原文地址:http://www.cnblogs.com/wendyqun/p/6814832.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!