广告
返回顶部
首页 > 资讯 > 精选 >Java冒泡排序代码怎么实现
  • 192
分享到

Java冒泡排序代码怎么实现

2023-06-29 05:06:26 192人浏览 泡泡鱼
摘要

这篇文章主要介绍了Java冒泡排序代码怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java冒泡排序代码怎么实现文章都会有所收获,下面我们一起来看看吧。冒泡排序冒泡排序 (Bubble Sort) 是一

这篇文章主要介绍了Java冒泡排序代码怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java冒泡排序代码怎么实现文章都会有所收获,下面我们一起来看看吧。

冒泡排序

冒泡排序 (Bubble Sort) 是一种简单的排序算法. 它重复地遍历要排序的数列, 一次比较两个元素, 如果他们的顺序错误就把他们交换过来. 遍历数列的工作是重复地进行直到没有再需要交换, 也就是说该数列已经排序完成. 这个算法的名字由来是因为越小的元素会经由交换慢慢 “浮” 到数列的顶端.

冒泡排序流程:

  • 通过比较相邻的元素, 判断两个元素位置是否需要互换

  • 进行 n-1 次比较, 结尾的元素就会是最大元素

  • 重复以上冒泡过程 n 次

代码实现:

import java.util.Arrays;public class bubble {    public static void main(String[] args) {        // 创建数据        int[] array = {426,375474,8465,453};        // 实现排序        System.out.println(Arrays.toString(array));        System.out.println(Arrays.toString(bubbleSort(array)));    }    public static int[] bubbleSort(int[] array) {        // 如果数组为空, 返回        if (array.length == 0){            return array;        }        // 执行冒泡过程n次, n为数组长度        for (int i = 0; i < array.length; i++) {            // 冒泡过程            for (int j = 0; j < array.length - 1 - i; j++) {                // 判断j索引的元素是否比j+1索引的元素大                if (array[j+1] < array[j]) {                    // 交换位置                    int temp = array[j + 1];                    array[j + 1] = array[j];                    array[j] = temp;                }            }        }        return array;    }}

输出结果:

[426, 375474, 8465, 453]
[426, 453, 8465, 375474]

插入排序

插入排序 (Insertion Sort) 是一种简单直观的排序算法. 它的工作原理是通过构建有序序列, 对于未排序数据, 在已排序序列中从后向前扫描,找到相应位置并插入. 插入排序在实现上, 在从后向前扫描过程中, 需要反复把已排序元素逐步向后挪位, 为最新元素提供插入空间.

Java冒泡排序代码怎么实现

插入排序流程:

  • 从第二个元素开始, 从后往前扫描

  • 逐个比较元素大小, 之道插入到合适的位置

  • 重复以上步骤 n-1 次

代码实现:

import java.util.Arrays;public class insert {    public static void main(String[] args) {        // 创建数据        int[] array = {426,375474,8465,453};        // 实现排序        System.out.println(Arrays.toString(array));        System.out.println(Arrays.toString(insertionSort(array)));    }    public static int[] insertionSort(int[] array) {        // 如果数组为空, 返回        if (array.length == 0)            return array;        // 待排序元素        int current;        // 执行插入过程n-1次        for (int i = 0; i < array.length - 1; i++) {            // 指定待排序元素            current = array[i + 1];            int preIndex = i;            // 执行插入过程, 往前一个个比对            while (preIndex >= 0 && current < array[preIndex]) {                array[preIndex + 1] = array[preIndex];                preIndex--;            }            // 插入元素            array[preIndex + 1] = current;        }        return array;    }}

输出结果:

[426, 375474, 8465, 453]
[426, 453, 8465, 375474]

归并排序

归并排序 (Merge Sort) 是一种建立在归并操作上的算法, 是分治的一个经典应用.

Java冒泡排序代码怎么实现

归并排序流程:

  • 把数组拆分成两个 n/2 长度的子序列

  • 对这两个子序列分别采用归并排序

  • 将排序好的序列合并成最终序列

代码实现:

import java.util.Arrays;public class merge {    public static void main(String[] args) {        // 创建数据        int[] array = {426,375474,8465,453};        // 实现排序        System.out.println(Arrays.toString(array));        System.out.println(Arrays.toString(mergeSort(array)));    }    public static int[] mergeSort(int[] array) {        // 如果数组长度小于2, 返回        if (array.length < 2) {            return array;        }                // 分治        int mid = array.length / 2;        int[] left = Arrays.copyOfRange(array, 0, mid);        int[] right = Arrays.copyOfRange(array, mid, array.length);        return merge(mergeSort(left), mergeSort(right));    }    public static int[] merge(int[] left, int[] right) {        // 创建数组用于存放合并后的序列        int[] result = new int[left.length + right.length];        for (int index = 0, i = 0, j = 0; index < result.length; index++) {            // 左序列取完            if (i >= left.length)                result[index] = right[j++];            // 右序列取完            else if (j >= right.length)                result[index] = left[i++];            // 左序列的第i个大于有序列的第j个            else if (left[i] > right[j])                result[index] = right[j++];            else                result[index] = left[i++];        }        return result;    }}

输出结果:

[426, 375474, 8465, 453]
[426, 453, 8465, 375474]

快速排序

快速排序 (Quicksort) 通过一趟排序将要排序的数据分割成独立的两部分, 其中一部分的所有数据都比另外一部分的所有数据都要小, 然后再按此方法对这两部分数据分别进行快速排序, 整个排序过程可以递归进行, 以此达到整个数据变成有序序列.

Java冒泡排序代码怎么实现

快速排序流程:

  • 从数组中挑出一个元素作为基准 (Pivot), 通常为第一个或者最后一个元素将比基准元素

  • 小的值放到基准前面, 比基准元素大的值放到基准后面

  • 递归进行分区操作

代码实现:

import java.util.Arrays;public class quick {    public static void main(String[] args) {        // 创建数据        int[] array = {426, 375474, 8465, 453};        // 实现排序        System.out.println(Arrays.toString(array));        quickSort(array, 0, array.length - 1);        System.out.println(Arrays.toString(array));    }    public static void quickSort(int[] arr, int low, int high) {        // 定义        int p, i, j, temp;        if (low >= high) {            return;        }                // p就是基准数, 每个数组的第一个        p = arr[low];        i = low;        j = high;        while (i < j) {            //右边当发现小于p的值时停止循环            while (arr[j] >= p && i < j) {                j--;            }            //这里一定是右边开始,上下这两个循环不能调换(下面有解析,可以先想想)            //左边当发现大于p的值时停止循环            while (arr[i] <= p && i < j) {                i++;            }            temp = arr[j];            arr[j] = arr[i];            arr[i] = temp;        }        // 交换p和arr[i]        arr[low] = arr[i];        arr[i] = p;        // 分别进行快排        quickSort(arr, low, j - 1);        quickSort(arr, j + 1, high);    }}

输出结果:

[426, 375474, 8465, 453]
[426, 453, 8465, 375474]

总结

算法时间复杂度稳定性适用场景
冒泡排序                                                 O                                  (                                               n                                     2                                              )                                          O(n^2)                           O(n2)稳定数组大致为从小到大
插入排序                                                 O                                  (                                               n                                     2                                              )                                          O(n^2)                           O(n2)稳定适用于数组较小的场景
归并排序                                                 O                                  (                                  n                                  l                                  o                                  g                                  n                                  )                                          O(nlogn)                           O(nlogn)稳定适用于数组较大的场景
快速排序                                                 O                                  (                                  n                                  l                                  o                                  g                                  n                                  )                                          O(nlogn)                           O(nlogn)不稳定适用于数组较大的场景

关于“Java冒泡排序代码怎么实现”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Java冒泡排序代码怎么实现”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Java冒泡排序代码怎么实现

本文链接: https://www.lsjlt.com/news/322821.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java冒泡排序代码怎么实现
    这篇文章主要介绍了Java冒泡排序代码怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java冒泡排序代码怎么实现文章都会有所收获,下面我们一起来看看吧。冒泡排序冒泡排序 (Bubble Sort) 是一...
    99+
    2023-06-29
  • Java实现冒泡排序的代码怎么写
    今天小编给大家分享一下Java实现冒泡排序的代码怎么写的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。冒泡排序原理比较相邻的两...
    99+
    2023-06-29
  • Java冒泡排序代码怎么写
    本篇内容介绍了“Java冒泡排序代码怎么写”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!冒泡排序是计算机的一种排序方法,它的时间复杂度为O(...
    99+
    2023-06-17
  • 怎么实现JAVA冒泡排序
    这篇文章将为大家详细讲解有关怎么实现JAVA冒泡排序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;3...
    99+
    2023-06-14
  • java List 排序之冒泡排序实例代码
    java List 排序之冒泡排序实例代码List排序,这里介绍两种排序:Collections.sort()排序:假如List集合中放的是Menu对象。public class Menu{ private int id; private ...
    99+
    2023-05-31
    java list 冒泡排序
  • 冒泡排序(Java)(完整代码)
       推荐我平时练习代码的工具,不用打开eclipse或者idea那么麻烦。 菜鸟工具 冒泡排序无非就是俩个for循环。 内嵌的for是用来求出当前数组最大或最小的那个元素 第一for是用来循环查找次最大的元素直到全部排序好。 先静态化创...
    99+
    2023-09-25
    算法 排序算法 数据结构
  • Java实现冒泡排序
    问题描述 利用冒泡排序把一列数组按从小到大或从大到小排序 (一)、冒泡排序思想 以从小到大为例: 1、第一轮的冒泡,从第一个数开始,与相邻的第二个数相比,若第一个数更大,则交换一二的...
    99+
    2022-11-12
  • 怎么用java实现冒泡排序
    这篇文章给大家分享的是有关怎么用java实现冒泡排序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。冒泡排序public class T08 { &n...
    99+
    2022-10-19
  • Python怎么实现冒泡排序
    本篇内容主要讲解“Python怎么实现冒泡排序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么实现冒泡排序”吧!Python实现的源码的测试结果:def bubble_s...
    99+
    2023-06-04
  • TypeScript怎么实现冒泡排序
    本篇内容介绍了“TypeScript怎么实现冒泡排序”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一. 冒泡排序的定义冒泡排序是一种简单的排...
    99+
    2023-07-05
  • java中怎么实现冒泡排序和选择排序
    这篇文章将为大家详细讲解有关java中怎么实现冒泡排序和选择排序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、冒泡排序冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序...
    99+
    2023-06-20
  • java实现冒泡排序算法
    介绍冒泡排序是一种算法,比较相邻元素,如果他们处在错误的位置上,那么交换他们的位置。排序可以进行升序或者降序。原理从第一个元素开始,比较第一个元素和第二个元素,如果第一个元素大于第二个元素,那么交换他们的位置。比较 第二个元素和第三个元素的...
    99+
    2018-06-06
    java 冒泡排序 算法
  • Java冒泡排序如何实现
    这篇文章主要为大家展示了“Java冒泡排序如何实现”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java冒泡排序如何实现”这篇文章吧。算法描述:对于给定的n个记录,从第一个记录开始依次对相邻的两...
    99+
    2023-05-30
    java
  • 用Python写冒泡排序代码
    python代码实现冒泡排序代码其实很简单,具体代码如下所示: 代码Code highlighting produced by Actipro CodeHighlighter (freeware)htt...
    99+
    2022-06-04
    代码 Python
  • C语言实现冒泡排序算法代码怎么写
    这篇文章主要介绍“C语言实现冒泡排序算法代码怎么写”,在日常操作中,相信很多人在C语言实现冒泡排序算法代码怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言实现冒泡排序算法代码怎么写”的疑惑有所帮助!...
    99+
    2023-06-29
  • Python实现冒泡排序
    #!/usr/bin/python # -*- coding:UTF-8 -*- def maopao(numbers):     for j in xrange(len(numbers)-1,-1,-1):...
    99+
    2023-01-31
    Python
  • VB.NET中怎么实现冒泡排序
    今天就跟大家聊聊有关VB.NET中怎么实现冒泡排序,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。VB.NET冒泡排序相关代码示例:Public Sub Bubbl...
    99+
    2023-06-17
  • 怎么用java实现冒泡排法
    冒泡排序是一种简单的排序算法,其基本思想是通过相邻元素的比较和交换来实现排序。 以下是使用Java实现冒泡排序的代码示例: publ...
    99+
    2023-10-26
    java
  • Java如何实现冒泡排序与选择排序
    小编给大家分享一下Java如何实现冒泡排序与选择排序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一.冒泡排序1.概念冒泡排序这种排序方法其实关键词就在于冒泡两个...
    99+
    2023-06-22
  • php怎么实现冒泡排序算法
    本文操作环境:windows10系统、php 7、thinkpad t480电脑。在给出具体的实现代码之前,我们先来简单介绍下冒泡排序。冒泡排序是一种比较简单的排序算法,它重复地走访过要排序的元素列,一次比较两个相邻的元素,如果他们的顺序(...
    99+
    2017-10-26
    php 冒泡排序
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作