java冒泡排序 快速排序_Java必备-冒泡排序,选择排序,快速排序(纯代码实现)

importjava.util.Arrays;/*** 是将无序a[0],a[1]...a[n],将其升序排序,比较a[0].a[1]的值,若结果为1,则交换两者的值,否则不变,接着继续向下比较.最后比较a[n-1].a[n]的结果,结束后,a[n]的值为当前数组中最大值.接着继续将a[1]~a[n-1]进行比较.一共处理n-1轮后, 就是以升序排列

*

* 优点: 稳定

* 缺点: 耗时长,每次只是移动两个相邻的数据做对比

* @Description Java冒泡排序

* @Author : Dy yimting@yeah.net

* @Date : 2019/3/26,14:06

* @Project : Java_Sort

* @Version : 1.0

**/

public classBubbleSort {public static voidmain(String[] args) {int[] arr = {34, 2, 146, 76, 45, 3, 6, 7};long start =System.nanoTime();

sort(arr);long end =System.nanoTime();

System.out.println("排序后 : " +Arrays.toString(arr));

System.out.println("运行时间:" + (end - start) + " ns");

}/***@paramarr 传入的数组

* 第一次外层循环 ,和第一层内层循环内部结果

* 34 2 146 76 45 3 6 7

* 2 34 146 76 45 3 6 7

* 2 34 146 76 45 3 6 7

* 2 34 76 146 45 3 6 7

* 2 34 76 45 146 3 6 7

* 2 34 76 45 3 146 6 7

* 2 34 76 45 3 6 146 7

* 2 34 76 45 3 6 7 146

* .....................*/

public static void sort(int[] arr) {//外侧循环控制整个循环的次数

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];

}

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值