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实现对字符串和数字的冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

java冒泡排序

java对Arraylist冒泡排序,怎么合理调用一个函数实现?

冒泡排序——Java实现

常见排序&查询算法Java代码实现

java 冒泡排序

Java数据结构和算法——冒泡选择插入排序算法