JAVA冒泡排序

定义一个含有10个不同数字的数组,并对该数组进行冒泡排序。要求:1.画出所使用方法的算法流程图;2.考虑方法的重载(数组类型可以是整型也可以是双精度);3.实现升序和降序... 定义一个含有10个不同数字的数组,并对该数组进行冒泡排序。
要求:
1.画出所使用方法的算法流程图;
2.考虑方法的重载(数组类型可以是整型也可以是双精度);
3.实现升序和降序两种方式;
4.输出原始数组以及算法每一轮执行完成之后的数组状态。
加分项:
1.数组长度可变,且不使用for循环;
2.实现对字符型数组的排序。
展开
 我来答
zhuluquan
2017-11-27 · 简简单单的一个小小的店铺
zhuluquan
采纳数:515 获赞数:2083

向TA提问 私信TA
展开全部
package Test;

import java.util.Arrays;

public class Demo1 {
public static void main(String[] args) {
int[] a = {2,1,3,9,7,10,8,11,17,6};
//System.out.println(Arrays.toString(a));
sortArr(a,a.length - 1,0);
System.out.println(Arrays.toString(a));
sort(a);
System.out.println(Arrays.toString(a));
}

public static void sortArr(int[] a,int i,int j){
if(j<i){
sortOne(a,i,j);
}else{
sortOne(a,--i,0);
}
}

public static void sortOne (int[] a,int i,int j){
if(i==0)return;
if(a[j + 1] < a[j]){
 int temp = a[j];
             a[j] = a[j + 1];
             a[j + 1] = temp;
}
sortArr(a,i,++j);
}

 public static void sort(int[] a)
    {
        int temp = 0;
        for (int i = a.length - 1; i > 0; --i)
        {
            for (int j = 0; j < i; ++j)
            {
                if (a[j + 1] < a[j])
                {
                    temp = a[j];
                    a[j] = a[j + 1];
                    a[j + 1] = temp;
                }
            }
        }
    }
}

上面代码是从小到大排列

package Test;

import java.util.Arrays;

public class Demo1 {
public static void main(String[] args) {
Object[] a = {2,1,3,9,7,10,8,11,17,6};
sortArr(a,a.length - 1,0);
System.out.println(Arrays.toString(a));
Object[] b = {'a','m','s','b','h','e'};
sortArr(b,b.length - 1,0);
System.out.println(Arrays.toString(b));

}

public static void sortArr(Object[] a,int i,int j){
if(j<i){
sortOne(a,i,j);
}else{
sortOne(a,--i,0);
}
}

public static void sortOne (Object[] a,int i,int j){
if(i==0)return;
if(a[j + 1] instanceof Integer){
if(Integer.valueOf(""+a[j + 1]) <Integer.valueOf(""+ a[j])){
Object temp = a[j];
             a[j] = a[j + 1];
             a[j + 1] = temp;
}
}else if(a[j + 1] instanceof Character){
if(a[j + 1].toString().charAt(0) <a[j].toString().charAt(0)){
Object temp = a[j];
             a[j] = a[j + 1];
             a[j + 1] = temp;
}
}
sortArr(a,i,++j);
}

//  public static void sort(int[] a)
//     {
//         int temp = 0;
//         for (int i = a.length - 1; i > 0; --i)
//         {
//             for (int j = 0; j < i; ++j)
//             {
//                 if (a[j + 1] < a[j])
//                 {
//                     temp = a[j];
//                     a[j] = a[j + 1];
//                     a[j + 1] = temp;
//                 }
//             }
//         }
//     }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式