楼上的代码好复杂...其实几个循环就可以了,用不着那么多if判断
成都创新互联公司服务项目包括无锡网站建设、无锡网站制作、无锡网页制作以及无锡网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,无锡网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到无锡省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
import java.util.ArrayList;
public final class SpecialStringSorter {
public static String[] sort(String[] list){
ArrayListString outbuilder=new ArrayListString();
if(list.length2) throw new RuntimeException();//如果list长度小于2会抛出运行时异常(你想换掉就换掉,比如说返回本身)
for(int a=2;a=list.length;a++){ //这一层循环是迭代输出括号里的元素数(a代表输出中的[]里的元素数),不断增加
for(int b=0;b=list.length-a;b++){ //这一层循环是迭代输出括号里的开头数
for(int c=b+1;c=list.length-a+1;c++){//这一层循环是第二个数
StringBuilder sb=new StringBuilder("[");
sb.append(list[b]);
sb.append(","+list[c]);
for(int d=1;da-1;d++){ //这一层循环是一个[]内容的生成循环
sb.append(","+list[c+d]);
}
sb.append("]");
outbuilder.add(sb.toString());
}
}
}
String[] result=new String[outbuilder.size()];
int i=0;
for(Object resultBuilder:outbuilder){
result[i]=(String)resultBuilder;
i++;
}
return result;
}
public static void main(String[] args){
String[] test={
"1","2","3","4"
};
String[] sortResult=sort(test);
for(String out:sortResult){
System.out.print(out);
}
}
}
public static void main(String[] args) {
int k;
System.out.print("请输入第一个数:");
Scanner str1 = new Scanner(System.in);
int max = Integer.parseInt(str1.next());
System.out.print("请输入第二个数:");
Scanner str2 = new Scanner(System.in);
int min = Integer.parseInt(str2.next());
if(max min ){
k=max;
max= min;
min = k;
}
System.out.print("请输入第三个数:");
Scanner str3 = new Scanner(System.in);
int mid = Integer.parseInt(str3.next());
if(midmax){
k=max;
max= mid;
mid = k;
}else if(midmin){
k=mid;
mid= min;
min = k;
}
System.out.println("max:"+max+",mid:"+mid+",min:"+min);
}
冒泡排序
public static void main(String[] args) {
int [] num=new int[3];
num[0]=23;
num[1]=45;
num[2]=22;
System.out.println("数组排序前为");
for(int i=0;inum.length;i++){
System.out.print (num[i]+" ");
}
int temp;
for(int i=0;inum.length;i++){
for(int j=0;jnum.length-i-1;++j){
if(num[j]num[j+1]){
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
System.out.println("\n输出数组升序后为");
for(int i=0;inum.length;i++){
System.out.print(num[i]+" ");
}
}
可以实现比较器Comparator来定制排序方案,同时使用Colletions.sort的方式进行排序,代码如下:
public void sortDesc(ListLong s){
Collections.sort(s, new ComparatorLong() {
public int compare(Long o1, Long o2) {
Long result = o2 - o1;
return result.intValue();
}
});
s.forEach(item-{
System.out.print(item +" ");
});
}
同时常用的比较排序算法主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。
java的冒泡排序实现如下:
public static void bubbleSort(int []arr) { for(int i =0;iarr.length-1;i++) { for(int j=0;jarr.length-i-1;j++) {//-1为了防止溢出 if(arr[j]arr[j+1]) { int temp = arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } }
还有非比较排序,时间复杂度可以达到O(n),主要有:计数排序,基数排序,桶排序等。