java实现对字符串和数字的冒泡排序
Posted ggyc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java实现对字符串和数字的冒泡排序相关的知识,希望对你有一定的参考价值。
public static void sort(Object[] objects) if(objects instanceof Number[]) for (int i = 0; i < objects.length-1; i++) for (int j = i+1; j < objects.length; j++) //判断前一个值是否大于后一个值 if(((Number)objects[i]).doubleValue()>((Number) objects[j]).doubleValue()) Object temp = objects[i]; objects[i] = objects[j]; objects[j] = temp; else if(objects instanceof String[]) for (int i = 0; i < objects.length-1; i++) for (int x = i+1; x < objects.length; x++) //拿到前一个String char[] charBefore = ((String)objects[i]).toCharArray(); //拿到后一个String char[] charsAfter = ((String)objects[x]).toCharArray(); //计算当前变换的String[x]的长度 int length = ((String) objects[x]).length(); //获取最短循环次数,以免下标越界 int loopNumber = ( charBefore.length > length ? length : charBefore.length ); for (int j = 0; j < loopNumber; j++) //判断前一位的首字母是否小于后一位,例如:首字母a<首字母b则不用再比较 if((int)charBefore[j]<(int)charsAfter[j]) break; //判断前一位字母是否大于后一位字母,如果大于则替换位置 else if((int)charBefore[j]>(int)charsAfter[j]) Object temp = objects[i]; objects[i] = objects[x]; objects[x] = temp; break; //如果两个String的长度不同,最短内容的最短起始位到最短结束位 和 最长内容的最短起始位和最短结束位的这段字符串长度内容相等, // 则长度最短的放在前面,例如String a = "asd";String b = "as"; 则 字符串b排在前面 else if (j == loopNumber-1 && charBefore[loopNumber-1] == charsAfter[loopNumber-1]) if(charBefore.length > charsAfter.length) Object temp = objects[i]; objects[i] = objects[x]; objects[x] = temp;
以上是关于java实现对字符串和数字的冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章