java数组排序

java数组排序

在java中,数组排序是一个很基础的问题,也是面试中经常会被问起的一个问题。下面介绍两种数组排序方法。

选择排序
count = 0;
int[] dest1= {9,5,3,4,2,6};
for (int i = 0; i < dest1.length; i++) {
    for (int j = 0; j < dest1.length; j++) {
        if(dest1[j] < dest1[i]) {
            int t = dest1[j];
            dest1[j] = dest1[i];
            dest1[i] = t;
        }
        count++;
    }
}
System.out.println(count);

结果为:9, 6, 5, 4, 3, 2 2,总共循环了36次。

冒泡排序

count = 0;
int[] dest2= {9,5,3,4,2,6};
for (int i = 0; i < dest2.length - 1; i++) {
    for (int j = 0; j < dest2.length - 1; j++) {
        if(dest2[j] < dest2[j + 1]) {
            int t = dest2[j];
            dest2[j] = dest2[j + 1];
            dest2[j + 1] = t;
        }
        count++;
    }
}
System.out.println(count);

结果为:9, 6, 5, 4, 3, 2 2,总共循环了25次。因最后一次不需要比较,所以比选择排序的循环次数要少。

int[] dest= {9,5,3,4,2,6};
int count = 0;
for (int i=0; i<length; i++)
    for (int j=i; j>0 &&
            ((Comparable) dest[j-1]).compareTo(dest[j])>0; j--) {

        //swap(dest, j, j-1);
        int t = dest[j];
        dest[j] = dest[j-1];
        dest[j-1] = t;
        count++;
    }
System.out.println(count);

结果为:2, 3, 4, 5, 6, 9,总共循环了10次。最后这种,属于冒泡排序,在第二层循环中的长度为第一层循环的i值,这样循环次数是最少的。

以上,介绍了数组排序的选择排序和冒泡排序,其中第三种方式次数是最少的,也是最推荐使用的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值