二、Java版冒泡排序
2018-09-25 本文已影响6人
编程界的小学生
一、核心思想
比较两个元素,如果前一个比后一个大,则进行交换。经过对每个元素的比较。最后将最大的元素设置成最后一个元素。重复(n-1次)该操作,最后形成从小到大的排序。
二、源码
package com.ctw;
/**
* @author TongWei.Chen 2018-09-25 16:01:32
* @Description: 冒泡排序
* @Project sjjg-sf
*/
public class BubbleSort {
/**
* 冒泡排序
*/
public static void bubbleSort(long[] arr) {
// 0、定义交换变量,注意:细节操作,我没放到for里面,是为了外面定义只生成一个变量到栈里。
long temp = 0L;
// 1、需要进行n-1趟排序
for (int i = 0; i < arr.length - 1; i ++) {
// 2、j < arr.length - i;是因为上面已经控制了外层循环的趟数,每一次外层循环都会找到一个最小数字并放到了最左侧。
// 所以这里-i操作是为了少循环几遍,节省一点性能开销。
// - 1;操作是因为下面要进行变量替换,方便arr[j + 1];也可以不-1,直接int j = 1;开始,然后下面arr[j - 1] > arr[j],一样的道理
for (int j = 0; j < arr.length - i - 1; j ++) {
// 若左侧大于右侧,则进行变量替换,因为我们是从小大大排序。
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
public static void main(String[] args) {
MyArray myArray = new MyArray();
myArray.add(30L);
myArray.add(12L);
myArray.add(33L);
myArray.add(20L);
myArray.add(10L);
bubbleSort(myArray.getArr());
myArray.display();
}
}
三、广告
-
码云地址
-
QQ群【Java初学者学习交流群】:458430385
-
微信公众号【Java码农社区】
img -
今日头条号:编程界的小学生