专栏首页深入理解Java冒泡排序算法(Bubble Sort)

冒泡排序算法(Bubble Sort)

【冒泡排序算法基本思想和案例】

冒泡排序:

         对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移动到数组的前面,把大的元素移动到

         数组的后面(也就是交换两个元素的位置),这样数组元素就像气泡一样从底部上升到顶部。

 案例:

         初始数组资源【63    4    24    1    3    15】

算法主要代码:

// 定义方法实现数组的冒泡排序算法
public static void bubbleSort(int[] array) {
for (int index = 1; index <= array.length - 2; index++) {
for (int i = 0; i < array.length - index; i++) {
if (array[i] > array[i + 1]) {
// 此部分算法请参考不借助第三方变量实现两个变量对换
array[i] = array[i] ^ array[i + 1];
array[i + 1] = array[i + 1] ^ array[i];
array[i] = array[i] ^ array[i + 1];
}
}
}
}

案例:

package com.lemon.demo;
/*
* 【选择排序算法基本思想和案例】
* 冒泡排序:
* 对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移动到数组的前面,把大的元素移动到
* 数组的后面(也就是交换两个元素的位置),这样数组元素就像气泡一样从底部上升到顶部。
* 案例:
* 初始数组资源【63 4 24 1 3 15】
* 
*/
public class BubbleSort {
public static void main(String[] args) {
int[] array = {63, 4, 24, 1, 3, 15};
System.out.println("排序前:");
for (int i : array) {
System.out.print(i + "\t");
}
System.out.println();
bubbleSort(array);
System.out.println("排序后:");
for (int i : array) {
System.out.print(i + "\t");
}
}
 
// 定义方法实现数组的冒泡排序算法
public static void bubbleSort(int[] array) {
for (int index = 1; index <= array.length - 2; index++) {
for (int i = 0; i < array.length - index; i++) {
if (array[i] > array[i + 1]) {
// 此部分算法请参考不借助第三方变量实现两个变量对换
array[i] = array[i] ^ array[i + 1];
array[i + 1] = array[i + 1] ^ array[i];
array[i] = array[i] ^ array[i + 1];
}
}
}
}
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 反转排序算法(Reverse Sort)

             反转排序的基本思想比较简单,也很好理解,其实现思路就是把数组最后一个元素和第一个元素替换,

    itlemon
  • java反射技术的案例之泛型擦除

    正确理解泛型概念的首要前提是理解类型擦除(type erasure)。 Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节代码中是不包含泛...

    itlemon
  • 选择排序算法(Selection Sort)

             每一趟从待排序的数据元素中选出最小(或者最大)的一个元素,顺序放在已经排好序的数列的后面,直到全部待排序的数据元素排完。

    itlemon
  • php实现快速排序算法

    每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。这样在每次交换的时候就不会像冒泡排序一样只能在...

    benny
  • PHP数组array类常见操作示例

    array_diff(arr1,arr2);//计算数组的差集(对比返回在 array1 中但是不在 array2 及任何其它参数数组中的值。)

    砸漏
  • jQuery ajax+PHP实现的级联下拉列表框功能示例

    本文实例讲述了jQuery ajax+PHP实现的级联下拉列表框功能。分享给大家供大家参考,具体如下:

    砸漏
  • 浅谈PHP array_search 和 in_array 函数效率问题

    在一个接口中,发现非常耗时,排查原因发现 array_search 查找数组中的元素的 key 时,效率随着数组变大,耗时增加。特别是大数组时,非常耗时。在函数...

    砸漏
  • PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结

    本文实例总结了PHP实现二维数组(或多维数组)转换成一维数组的常见方法。分享给大家供大家参考,具体如下:

    砸漏
  • 算法一 快速排序

    smartsi
  • python--几种快速排序的实现以及运行时间比较

    快速排序的基本思想:首先选定一个数组中的一个初始值,将数组中比该值小的放在左边,比该值大的放在右边,然后分别对左边的数组进行如上的操作,对右边的数组进行如上的操...

    绝命生

扫码关注云+社区

领取腾讯云代金券