我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

小编给大家分享一下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如何实现冒泡排序与选择排序”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

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

    下载Word文档

    猜你喜欢

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

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

    java中怎么实现冒泡排序和选择排序

    这篇文章将为大家详细讲解有关java中怎么实现冒泡排序和选择排序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、冒泡排序冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序
    2023-06-20

    C#算法中如何实现冒泡排序、插入排序、选择排序

    这篇文章主要介绍了C#算法中如何实现冒泡排序、插入排序、选择排序,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。冒泡排序法是数组等线性排列的数字从大到小或从小到大排序。以从小到
    2023-06-26

    Java冒泡排序如何实现

    这篇文章主要为大家展示了“Java冒泡排序如何实现”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java冒泡排序如何实现”这篇文章吧。算法描述:对于给定的n个记录,从第一个记录开始依次对相邻的两
    2023-05-30

    JAVA小练习冒泡排序,选择排序和插入排序

    冒泡:点击(此处)折叠或打开
    2023-06-02

    java选择排序和冒泡排序有什么区别

    Java中的选择排序和冒泡排序是两种不同的排序算法,它们的区别主要体现在排序的方式和效率上。排序方式:选择排序:每次从未排序的元素中选择最小(或最大)的元素,将其放到已排序序列的末尾,直到所有元素都排序完毕。冒泡排序:通过相邻元素的比较和
    2023-10-26

    java实现冒泡排序算法

    介绍冒泡排序是一种算法,比较相邻元素,如果他们处在错误的位置上,那么交换他们的位置。排序可以进行升序或者降序。原理从第一个元素开始,比较第一个元素和第二个元素,如果第一个元素大于第二个元素,那么交换他们的位置。比较 第二个元素和第三个元素的位置,如果处在错误的
    java实现冒泡排序算法
    2018-06-06

    怎么实现JAVA冒泡排序

    这篇文章将为大家详细讲解有关怎么实现JAVA冒泡排序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Java的优点是什么1. 简单,只需理解基本的概念,就可以编写适合于各种情况的应用程序;2. 面向对象;3
    2023-06-14

    Python实现冒泡排序

    #!/usr/bin/python# -*- coding:UTF-8 -*-def maopao(numbers):    for j in xrange(len(numbers)-1,-1,-1):        for i in xr
    2023-01-31

    javascript中如何实现冒泡排序

    这篇文章给大家分享的是有关javascript中如何实现冒泡排序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、什么是冒泡排序冒泡排序,Bubble Sort,通过依次来比较相邻两个元素的大小,在每一次的比较的
    2023-06-25

    Java如何实现冒泡排序及优化

    这篇文章给大家分享的是有关Java如何实现冒泡排序及优化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。什么是冒泡排序冒泡排序指重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从小到大)错误就把他们
    2023-06-22

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录