广告
返回顶部
首页 > 资讯 > 精选 >Java如何实现冒泡排序与选择排序
  • 800
分享到

Java如何实现冒泡排序与选择排序

2023-06-22 04:06:26 800人浏览 八月长安
摘要

小编给大家分享一下Java如何实现冒泡排序与选择排序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一.冒泡排序1.概念冒泡排序这种排序方法其实关键词就在于冒泡两个

小编给大家分享一下Java如何实现冒泡排序与选择排序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

    一.冒泡排序

    1.概念

    冒泡排序这种排序方法其实关键词就在于冒泡两个字,顾名思义就是数字不断比较然后最大的突出来,也就是说把相邻的两个数字两两比较,当一个数字大于右侧相邻的数字时,交换他们的位置,当一个数字和他右侧的数字小于或等于的时候,不交换。

    2.图解

    关于冒泡排序我自己画了一幅图来描述他的一轮过程

    这里我举了五个无序的数{7,3,6,5,4}

    Java如何实现冒泡排序与选择排序

    由此可看出他不断与右侧相邻的数字进行比较,当他大于右边的数字就交换,否则不交换,就用这种方法不断进行排序进行很多轮,最后得出一个有序的序列{2,4,5,6,7}。

    3.代码的思路

    冒泡循环是一种有序的序列,有上图我们不难看出冒泡循环一轮需要进n-1次比较然后开启下一层,而且你一轮比较完了之后最后一个最大的数就不用再参与比较循环了,所以下一次的循环可以减少一次。

    因此我的思路是利用两次for循环,一次循环来当取第二次循环的次数,然后依次减少第二次for循环的次数,简便了很多过程,然后数组两个相邻的数字进行依次比较,大于右边的也就是大于下一位的交换位置,否则不交换,所以我的两个for循环的代码如下(其实这也算是个万能代码,就冒泡循环这一块)当然i,k,b都需要来定义的,n为比较序列中元素个数。

    这个代码也用了两次for循环所以我们不难推算出时间复杂度为o(n^2)

    for(i=0;i<n-1;i++){  for(k=0;k<n-1-i;k++)   { if(a[k]>a[k+1])     { b=a[k];       a[k]=a[k+1];       a[k+1]=b;       }//交换a[k]与a[k+1]位置                 } }

    4.代码例子

    我自己也写了一个代码,输入a[10]序列的数字,然后冒泡循环进行排序来实现

    #include<stdio.h>int main(){int a[10], i, j, b, k;for (i = 0; i < 10;i++){printf("输入第%d个数为:", i+1);scanf_s("%d", &a[i]);   }for (k = 0; k < 9; k++)//外部循环   for (i = 0; i < 9 - k; i++)//内部循环if(a[i] > a[i + 1])//{b = a[i];a[i]= a[i + 1];a[i + 1] = b;}printf("排出序列为:");for(i = 0; i < 10; i++)printf("%d ", a[i]);return 0;}

    最后运行也是成功的

    Java如何实现冒泡排序与选择排序

    二.选择排序

    1.概念

    选择循环的主要是选择,选择一个元素去进行比较,假如这个数比他小,换成嘞个数继续比较,最后找出最小值与数组第一位的数进行交换。然后一直这样循环下去,直到代码排序完成。也就是通过一个中间量从带排序的的数中找出最大或最小的交换到对应位置。

    2.图解

    关于选择排序我自己花了一幅图来描述他的一轮比较

    我用了五个无序数来做例子{2,1,4,-3,3}

    Java如何实现冒泡排序与选择排序

    由此可以看出选择比较的过程,这里我用指针代指了需要的中间量,刚开始指针指向2,然后2去比较,1<2,所以指针指向较小值,指针指向1,最后就这样找出-3为最小值和第一个交换,得到第一轮循环比较的数列{-3,1,4,2,3}。

    3.代码的思路

    其实观察上图一轮循环次数还有循环完一轮之后,不需要用最小值比较可以看出其实他和冒泡循环有点相似,都是循环一轮需要进n-1次比较然后开启下一层,而且下一次循环可以减少一次。

    所以我的思路是,依然运用两次for循环,与冒泡循环不同的是我需要一个中间商,所以我可以引用一个局部变量来帮助我,这个局部变量就是图解的指针,局部变量就是数组对应元素的位置,不断进行比较,当他小于一个数时,他就等于嘞个数的位置数,继续比较,直到循环结束找出最小值,最小值跟第一位换位置,一次循环直到排出有序序列为止。所以代码如下

    for(i=o;i<n-1:i++)//循环数列取得数开始依次比较{   int x=i;//x为中间商  for(k=i+1;k<n;k++)//从循环数列取得数后一位开始循环数列取得数进行依次比较    {      if(a[x]>a[k])//得出最小值        k=x;        if(x!=i)//将得到的最小值跟最前面的数字进行交换        { t=a[i];          a[i]=a[x];          a[x]=t;        }     } }

    这也是一个万能代码可以用在选择序列上。

    以上是“Java如何实现冒泡排序与选择排序”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

    --结束END--

    本文标题: Java如何实现冒泡排序与选择排序

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

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

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

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

    下载Word文档
    猜你喜欢
    • Java如何实现冒泡排序与选择排序
      小编给大家分享一下Java如何实现冒泡排序与选择排序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一.冒泡排序1.概念冒泡排序这种排序方法其实关键词就在于冒泡两个...
      99+
      2023-06-22
    • JavaScript中如何实现冒泡排序与选择排序
      JavaScript中如何实现冒泡排序与选择排序,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、冒泡排序算法冒泡算法顾名思义,可以将待排...
      99+
      2022-10-19
    • 详解Java之冒泡排序与选择排序
      目录一.冒泡排序1.概念2.图解3.代码的思路4.代码例子二.选择排序1.概念2.图解3.代码的思路总结一.冒泡排序 1.概念 冒泡排序这种排序方法其实关键词就在于冒泡两个字,顾名思...
      99+
      2022-11-12
    • C++冒泡排序与选择排序详解
      目录 一.冒泡排序1.概念 2.图解3.代码的思路4.代码例子 二.选择排序1.概念2.图解3.代码的思路总结 一.冒泡排序 1.概念 冒泡排序这种排序方法其实关键词就在于冒泡两个字...
      99+
      2022-11-12
    • java冒泡排序和选择排序详解
      目录1、冒泡排序2、选择排序法总结1、冒泡排序 冒泡排序(Bubble Sorting)的基本思想是:通过对待 排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发...
      99+
      2022-11-12
    • java中怎么实现冒泡排序和选择排序
      这篇文章将为大家详细讲解有关java中怎么实现冒泡排序和选择排序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、冒泡排序冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序...
      99+
      2023-06-20
    • 怎么理解JavaScript冒泡排序与选择排序
      本篇内容主要讲解“怎么理解JavaScript冒泡排序与选择排序”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解JavaScript冒泡排序与选择排序”吧...
      99+
      2022-10-19
    • JAVA小练习冒泡排序,选择排序和插入排序
      冒泡:点击(此处)折叠或打开...
      99+
      2023-06-02
    • C#算法中如何实现冒泡排序、插入排序、选择排序
      这篇文章主要介绍了C#算法中如何实现冒泡排序、插入排序、选择排序,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。冒泡排序法是数组等线性排列的数字从大到小或从小到大排序。以从小到...
      99+
      2023-06-26
    • JavaScript中怎么实现冒泡排序和选择排序
      本篇文章为大家展示了JavaScript中怎么实现冒泡排序和选择排序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。算法说明算法(Algorithm)是解决问题的一种...
      99+
      2022-10-19
    • java选择排序和冒泡排序有什么区别
      Java中的选择排序和冒泡排序是两种不同的排序算法,它们的区别主要体现在排序的方式和效率上。 排序方式: 选择排序:每次从未排...
      99+
      2023-10-26
      java
    • Java实现冒泡排序
      问题描述 利用冒泡排序把一列数组按从小到大或从大到小排序 (一)、冒泡排序思想 以从小到大为例: 1、第一轮的冒泡,从第一个数开始,与相邻的第二个数相比,若第一个数更大,则交换一二的...
      99+
      2022-11-12
    • Java 与排序算法(1):冒泡排序
      一、冒泡排序 冒泡排序(Bubble Sort)是一种简单的排序算法,它的基本思想是通过不断交换相邻两个元素的位置,使得较大的元素逐渐往后移动,直到最后一个元素为止。冒泡排序的时间复杂度为 ...
      99+
      2023-09-02
      排序算法 java 算法 冒泡排序
    • C#算法之冒泡排序、插入排序、选择排序
      冒泡排序法 是数组等线性排列的数字从大到小或从小到大排序。 以从小到大排序为例。 数据 11, 35, 39, 30, 7, 36, 22, 13, 1, 38, 26, 18, 1...
      99+
      2022-11-12
    • Java冒泡排序如何实现
      这篇文章主要为大家展示了“Java冒泡排序如何实现”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java冒泡排序如何实现”这篇文章吧。算法描述:对于给定的n个记录,从第一个记录开始依次对相邻的两...
      99+
      2023-05-30
      java
    • 怎么实现JAVA冒泡排序
      这篇文章将为大家详细讲解有关怎么实现JAVA冒泡排序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;3...
      99+
      2023-06-14
    • java实现冒泡排序算法
      介绍冒泡排序是一种算法,比较相邻元素,如果他们处在错误的位置上,那么交换他们的位置。排序可以进行升序或者降序。原理从第一个元素开始,比较第一个元素和第二个元素,如果第一个元素大于第二个元素,那么交换他们的位置。比较 第二个元素和第三个元素的...
      99+
      2018-06-06
      java 冒泡排序 算法
    • Python实现冒泡排序
      #!/usr/bin/python # -*- coding:UTF-8 -*- def maopao(numbers):     for j in xrange(len(numbers)-1,-1,-1):...
      99+
      2023-01-31
      Python
    • 手把手教你搞懂冒泡排序和选择排序
      目录冒泡排序原理:选择排序原理:总结冒泡排序 原理: 从头(左边)开始比较每一对相邻的元素,如果第1个比第2个大,就交换它们的位置,执行完一轮后,最末尾(最右边)就是最大的元素。 举...
      99+
      2022-11-12
    • 排序算法(冒泡、选择)-python代码
      冒泡排序: def bubble_sort(list): for i in range(len(list) - 1): # 这个循环负责设置冒泡排序进行的次数 for j in range(len(list) ...
      99+
      2023-01-31
      算法 代码 python
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作