Java的冒泡排序和选择排序的实现

介绍了Java数组的冒泡排序和选择排序的实现。

更多详尽的排序算法:10种常见排序算法原理详解以及Java代码的完全实现

1 选择排序

使用第一个值依次与后面的值做比较,若比第一个值小,交换位置,一轮结束后,将最小的值排在最前方.再拿第二个值与后面的值依次作比较,直至倒数第二个值完成比较,即完成排序。

外层循环控制第一个数。内层循环控制第二个数。

for (int i = 0; i < arr.length - 1; i++) {
    //第一个被比较的数
    for (int j = i + 1; j < arr.length; j++) {
        //被比较的数后面的数
        if (arr[i] > arr[j]) {
            arr[i] = arr[i] ^ arr[j];
            arr[j] = arr[i] ^ arr[j];
            arr[i] = arr[i] ^ arr[j];
        }
    }
}
System.out.println(Arrays.toString(arr));

2 冒泡排序

将前一个数和后一个数进行比较,若前一个比后一个小则交换位置,一轮完成后将最大值排在最前方再开始第二轮,选出第二大的值,排在倒数第二的位置,直至排到顺数第二位置,完成排序。

外层循环控制循环次数,内层循环控制比较的两个数。

for (int i = 0; i < arr.length - 1; i++) {
    for (int j = 0; j < arr.length - 1 - i; j++) {
        if (arr[j] > arr[j + 1]) {
            arr[j] = arr[j] ^ arr[j + 1];
            arr[j + 1] = arr[j] ^ arr[j + 1];
            arr[j] = arr[j] ^ arr[j + 1];
        }
    }
}
System.out.println(Arrays.toString(arr));

3 使用API方法

使用位于util包的Arrays工具类的sort方法

public static void sort(int[] a)

部分排序:

public static void sort(int[] a,int fromIndex,int toIndex)
参数: a - 要排序的数组 fromIndex - 要排序的第一个元素的索引(包括) toIndex -
要排序的最后一个元素的索引(不包括)

补充

DualPivotQuicksort是JDK1.7开始的类,采用的双Pivot快速排序算法, 这种算法通常会比传统单Pivot的快排算法效率更高,也是sort底层的算法! 并且针对不同类型的数组,其快速排序的算法也不一样!均封装在DualPivotQuicksort类中,形成重载方法,由sort方法根据传入的数组类型的不同而调用!

更多详尽的排序算法:10种常见排序算法原理详解以及Java代码的完全实现

如有需要交流,或者文章有误,请直接留言。另外希望点赞、收藏、关注,我将不间断更新各种Java学习博客!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值