排序-冒泡排序

排序-冒泡排序排序算法之【冒泡排序】在写代码之前我们需要对冒泡排序有一个逻辑上的理解:即什么是冒泡排序呢?冒泡排序是排序算法的其中一种,该排序的逻辑理解起来较为容易,理解上可以有两种方式,一种中正向的思维,一种是逆向的思维,什么意思呢?所谓的正向思维就是从前往后,从左往右,从上到下。那么逆向思维呢就正好与之相反。下面来说一正向思维下的冒泡排序:…

大家好,又见面了,我是你们的朋友全栈君。

排序算法之【冒泡排序】

在写代码之前我们需要对冒泡排序有一个逻辑上的理解:即什么是冒泡排序呢?
         冒泡排序是排序算法的其中一种,该排序的逻辑理解起来较为容易,理解上可以有两种方式,一种中正向的思维,一种是逆向的思维,什么意思呢?所谓的正向思维就是从前往后,从左往右,从上到下。那么逆向思维呢就正好与之相反。
         下面来说一正向思维下的冒泡排序:
          例如给你一组数据:{1, 34, 56, 8, -32, 7, -9, 0, 235 }在正向思维下的排序方式就是从左到右的进行排序,其排序的是按照第一个数和第二个数比较大小,如果第一个数比第二个数大的话,第二个数就和第一个数交换位置,第二个在和第三个比较大小,如果第二个数比第三个数小那么就位置不变,反之就交换位置,接着往后比较,依次进行下去。总结的来说就是进行一次完整的排序之后就会出现一个现象就是排在最后的数最大。
          例如:    1, 34, 56, 8, -32, 7, -9, 0, 235
          第一次:1, 34, 8,-32 ,7 , -9, 0, 56, 235      235最大的排在了最后
          第二次:1,8,-32,7,-9,0,34,56,235           56除235之外的最大的排在了最后
          …
          第八次:-32,-9,0,1,7,8,34,56,235            …

排序块:

/**
 * @author yxm
 * 正向思维下的冒泡排序
 * */
public class MaoPaoSort {
	public static void main(String[] args) {
		System.out.print("[");
		int nums[] = { 1, 34, 56, 8, -32, 7, -9, 0, 235 };
		for (int i = 0; i < nums.length; i++) {// 当前要确定的是哪个位置的数
            for (int j = 1; j < nums.length - i; j++) {
                if (nums[j - 1] > nums[j]) {
                    int tmp = nums[j - 1];
                    nums[j - 1] = nums[j];
                    nums[j] = tmp;
                }
            }
        }
		for (int x : nums) {
			System.out.print(x + ",");
		}
		System.out.print("]");

	}
}

       逆向思维呢正好就与正向思维下的相反,但是执行的效果是一样的,逻辑也是一样,只要理解了这个逻辑,代码写起来就不是那么的难了。
逆向思维下的代码块:

/**
 * @author yxm
 * 逆向思维下的冒泡排序
 * */
public class MaoPaoSort {
        public static void main(String[] args) {
            int [] arr={1, 34, 56, 8, -32, 7, -9, 0, 235};
            for(int i=0;i<arr.length;i++){
                for(int j=arr.length-1;j>=i+1;j--){
                    if(arr[j]<arr[j-1]){
                        int t=arr[j];
                        arr[j]=arr[j-1];
                        arr[j-1]=t;
                    }
                    }
                }
                for(int x:arr){
                System.out.println(x);
            }
    }
}

      总而言之呢还是要熟悉冒泡排序的逻辑,这样才能有更深的理解。

      创作难免有错误和不当的地方,还请大家多多指教。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149941.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月17日 下午1:46
下一篇 2022年6月17日 下午1:46


相关推荐

  • Ubuntu安装Eclipse的坑

    Ubuntu安装Eclipse的坑因为我使用的是 Ubuntu18 04 有软件商城 直接下载了 Eclipse 但是启动不了 找不到 JDK 但我已经设置好了 原来发现 JDK 的安装位置不对 最好安装在 opt 下 进行全局设置 JDK 将 JDK 的压缩包 xxx tag gz 复制到 opt jvm 文件夹下 所以得先在 opt 下新建一个 jvm 文件夹 而要在 opt 文件夹下新建文件夹需要获取 root 权限 所以需要 sudo 指令 在 opt 下新建文

    2026年3月17日
    2
  • 谷歌是python开发的吗_google python

    谷歌是python开发的吗_google python展开全部Google的没用过,百度的用过,挺简单的。你可以使用我的开发者代码去体验一下32313133353236313431303231363533e78988e69d8331333335346133。importurllib2importjsonaddress=u’沈阳市和平区三好街’key=u’RG3NWsfviWGCbRbWEXeY78BP’url=u’http://api…

    2025年12月6日
    4
  • Oracle基础 各种语句的定义格式

    Oracle内建数据类型一、 字符数据1、 char(size)2、 varchar2(size) 最常用,最大长度4000字节3、 nvhar(size)、nvarchar(size)4、 varc

    2021年12月20日
    46
  • 网络安全渗透高级工具(黑客工具软件大全100套)

    黑客工具软件大全100套1Nessus:最好的UNIX漏洞扫描工具Nessus是最好的免费网络漏洞扫描器,它可以运行于几乎所有的UNIX平台之上。它不止永久升级,还免费提供多达11000种插件(但需要注册并接受EULA-acceptance–终端用户授权协议)。它的主要功能是远程或本地(已授权的)安全检查,客户端/服务器架构,GTK(Linux下的一种图形界面)图形界面,内置脚本语言编译器…

    2022年4月5日
    73
  • 浏览器全屏API

    浏览器全屏API浏览器全屏 API 全屏 API 为使用用户的整个屏幕展现网络内容提供了一种简单的方式 并且在不需要时退出全屏模式 这种 API 让你可以简单地控制浏览器 使得一个元素与其子元素 如果存在的话 可以占据整个屏幕 并在此期间 从屏幕上隐藏所有的浏览器用户界面以及其他应用全屏 API 提供了一些其他接口以供实现全屏所需的方法 属性 事件处理函数全屏 API 方法 Element requestFulls options 请求浏览器 useragent 将特定元素 甚至延伸到它的后代元素 设置

    2026年3月20日
    3
  • Python学习笔记(28)-Python读取word文本「建议收藏」

    Python学习笔记(28)-Python读取word文本「建议收藏」一,简介Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是说python-docx模块会把word文档,文档中的段落、文本、字体等都看做对象,对对象进行处理就是对word文档的内容处理。二,相关概念如果需要读取word文档中的文字(一般来说,程序也只需要认识word文档中的文字信息),需要先了解python-docx模块的几个概念。1,Document对象,

    2022年8月23日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号