几种常用的排序方法——冒泡排序

几种常用的排序方法:

排序方法在编程中经常被使用,下面图片简单直观地列举了几种排序的时间复杂度和空间复杂度以及稳定性。

在这里插入图片描述

这次我们用Java语言实现冒泡排序,首先介绍下冒泡排序。

排序:将一组数据按照固定的规则进行排列

冒泡排序:一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,依次对所有的数据进行操作,直至所有数据按要求完成排序。

具体实现:

如果有n个数据进行排序,总共需要比较n-1次。
每一次比较完毕,下一次的比较就会少一个数据参与。
下面是代码:

import java.util.Arrays;
public class BubbleSort {
    public static void main(String[] args) {
//定义一个数组并且静态初始化
        int[] arr = {11, 27, 45, 9, 33};
//输出排序前的数组
        System.out.println("排序前为" + Arrays.toString(arr));
//冒泡排序
        for (int x = 0; x < arr.length - 1; x++) {
            for (int i = 0; i < arr.length - 1 - x; i++) {
                if (arr[i] > arr[i + 1]) {
                    int temp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = temp;
                }
            }
        }
        System.out.println("排序后:" + Arrays.toString(arr));

    }
}

运行结果:

结果测试

原码:

package 小案例练习.排序;

import 数组最大值.Array;

import java.util.Arrays;

/*
冒泡排序原理:
一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,依次对所有的数据进行操作,直至所有数据按要求完成排序
 1.如果有n个数据进行排序,总共需要比较n-1次
 2.每一次比较完毕,下一次的比较就会少一个数据参与

 */
public class BubbleSort {
    public static void main(String[] args) {
//定义一个数组并且静态初始化
        int[] arr = {11, 27, 45, 9, 33};
//输出排序前的数组
        System.out.println("排序前为" + Arrays.toString(arr));
//冒泡排序
        for (int x = 0; x < arr.length - 1; x++) {
            for (int i = 0; i < arr.length - 1 - x; i++) {
                if (arr[i] > arr[i + 1]) {
                    int temp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = temp;
                }
            }
        }
        System.out.println("排序后:" + Arrays.toString(arr));

    }
}
/*
//定义一个方法 将数组中元素按 [元素1,元素2,元素3] 这种规则组成字符串输出。
    public static  String arrayToString(int [] arr){
     StringBuilder sb=new StringBuilder();
     sb.append("[");
     //遍历数组 如果是不是最后一个元素就在后面加上", "
     for(int i=0;i<arr.length;i++){
         if(i == arr.length-1){
           sb.append(arr[i]);
         }else
           sb.append(arr[i]).append(", ");
     }
     sb.append("]");
        return sb.toString();

       }
    }

*/
  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值