数组排序(冒泡、排序)

 

   目前对于数组的排序有主要的两种,一种是选择排序,一种是冒泡排序。当然大学学过数据结构的知道,还有一些其他的排序,这里就不说明了,有时间自己上网查查。其实排序在开发中并不常用,

   我们学习它是学一种思想,以后的业务逻辑中可能会用到,可能会有相似的逻辑或者培养了我们这种思想,我们今后可以举一反三。不要为了题目而题目,说了一些题外话,不好意思,言归正传。

   (1)选择排序(从小到大)

         1)思想:选择排序,让数组中的每一个数,依次与后面的数进行比较,如果前面的数大于后面的数,就进行位置的交换。这种说法或许有些人看不明白。换个说法,选择排序:第一个数依次与

                  后面的数比较,第一次比较完之后最小的数在最前面 。

          不理解的看看图应该就差不多了,真不明白就和明白的人讨论讨论吧。

              

 

         2)代码

               
                  * 练习排序-选择排序
                  * @author Administrator
           
                                 //数组
                                 int[] arr = {5,3,7,2,6,7,6,5,4,1,9,8};
                                //第一次循环,是确定一个数依次和后面数的比较的数。
                                for (int i = 0; i < arr.length -1 ; i++) {
                                   //这个是和第一个数的比较的数
                                    for (int j = i+1; j < arr.length; j++) {
                                      //定义一个临时的变量,用来交换变量
                                       int temp ;  
                                       if(arr[i]>arr[j]){
                                            temp =  arr[i];
                                            arr[i] = arr[j];
                                            arr[j] = temp;
                                       }
                                   }
                                }
                        //打印最后的排序结果
                        alert(arr);
                         }
                }

  (2)冒泡排序(从小到大)    

         1)思想:相邻两个数进行比较,第一波比较后,最大的数在最后。(每比较完之后,后面的数就减少一个比较 )

                

         2)代码

           
            * 练习排序--冒泡排序
           
                       //数组
                       int[] arr = {5,3,7,2,6,7,6,5,4,1,9,8};
                       //外部循环
                       for(int i=0;i<arr.length-1;i++){
                            //相连两个数的索引是利用内部循环
                            for(int index=0;index<arr.length-1;index++){
                            //同样利用中间变量,注意区分与选择排序的区分
                                 if(arr[index]>arr[index+1]){
                                     int temp=arr[index];
                                     arr[index]=arr[index+1];
                                     arr[index+1]=temp;
                                }
                           }
                       }
                        alret(arr);
                 }
             }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 1598. 文件夹操作日志搜集器

文章目录1. 题目2. 解题1. 题目 每当用户执行变更文件夹操作时&#xff0c;LeetCode 文件系统都会保存一条日志记录。 下面给出对变更操作的说明&#xff1a; "../" &#xff1a;移动到当前文件夹的父文件夹。如果已经在主文件夹下&#xff0c;则 继续停留在当前文…

Java集合Set,List和Map等

Java集合Set,List和Map等 1 Java集合框架 因为Java是面向对象的语言&#xff0c;对事物的体现都是以对象的形式&#xff0c;为了方便对多个对象的操作&#xff0c;就要对对象进行存储。另一方面&#xff0c;使用Array存储对象方面具有一些弊端 。Java集合就像一个容器&#x…

利用bootstrap框架做了一个采摘节节日活动网页

效果欣赏如下&#xff1a; 总共主要是一下两个块代码&#xff1a; 1.主题&#xff1a; <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"width, initial-scale1.0&qu…

FC网络学习笔记02 -网络配置方法

随着新一代飞机的综合化航电系统对通信需求的不断提高&#xff0c;传统的ARINC429、1553B总线的传输速率分别只有100Kbps和1Mbps&#xff0c;其带宽已远远不 论文联盟 http://Www.LWlm.cOm能满足系统通信的需求&#xff0c;无法为高性能数据处理提供有力的通信支撑。 FC网络是…

LeetCode 1599. 经营摩天轮的最大利润(模拟)

文章目录1. 题目2. 解题1. 题目 你正在经营一座摩天轮&#xff0c;该摩天轮共有 4 个座舱 &#xff0c;每个座舱 最多可以容纳 4 位游客 。你可以 逆时针 轮转座舱&#xff0c;但每次轮转都需要支付一定的运行成本 runningCost 。摩天轮每次轮转都恰好转动 1 / 4 周。 给你一…

1.数据库基本概念知识

数据库 存储数据的仓库 描述一个事物的基本信息 优点: 持久化存储 读写速度极高 保证数据的有效性 RDBMS 当前主要使用两种类型的数据库&#xff1a;关系型数据库、非关系型数据库 所谓的关系型数据库RDBMS&#xff0c;是建立在关系模型基础上的数据库&#xff0c;借助于…

LeetCode 1600. 皇位继承顺序(图的深度优先遍历)

文章目录1. 题目2. 解题1. 题目 一个王国里住着国王、他的孩子们、他的孙子们等等。每一个时间点&#xff0c;这个家庭里有人出生也有人死亡。 这个王国有一个明确规定的皇位继承顺序&#xff0c;第一继承人总是国王自己。我们定义递归函数 Successor(x, curOrder) &#xff…

Java泛型,枚举,注解

Java泛型&#xff0c;枚举&#xff0c;注解 1 泛型 1.1 什么是泛型 泛型&#xff1a;即参数化类型。在不创建新的类型的情况下&#xff0c;通过泛型指定的不同类型来控制形参具体限制的类型。允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值…

2.数据完整性

使用数据类型的原则是&#xff1a;够用就行&#xff0c;尽量使用取值范围小的&#xff0c;而不用大的&#xff0c;这样可以更多的节省存储空间 常用数据类型如下&#xff1a; 整数&#xff1a;int&#xff0c;bit 小数&#xff1a;decimal 字符串&#xff1a;varchar,char 日期…

LeetCode 1601. 最多可达成的换楼请求数目(回溯+剪枝)

文章目录1. 题目2. 解题1. 题目 我们有 n 栋楼&#xff0c;编号从 0 到 n - 1 。每栋楼有若干员工。由于现在是换楼的季节&#xff0c;部分员工想要换一栋楼居住。 给你一个数组 requests &#xff0c;其中 requests[i] [fromi, toi] &#xff0c;表示一个员工请求从编号为 …

3.数据库基本操作

数据库操作&#xff1a; 查看所有数据库 show databases; 使用数据库 use 数据库名; 查看当前使用的数据库 select database(); 创建数据库 create database 数据库名charsetutf8; 例&#xff1a;create database python charsetutf8; 删除数据库 drop database 数据库名…

Nginx + PHP(php-fpm)遇到的502 Bad Gateway错误

我一个统计程序估计要跑1分多钟以上 查看了一个php-fpm 配置文件 [13-Oct-2013 12:06:07] WARNING: [pool www] child 7458, script /home/wwwroot/admin/index.php (request: "GET /index.php") execution timed out (101.515909 sec), terminating [13-Oct-2013 12…

4.数据库(增删改查)备份及恢复

查询所有列 select * from 表名; 例&#xff1a;select * from classes; 查询指定列&#xff0c;可以使用as为列或表指定别名 select 列1,列2,...from 表名; 例&#xff1a;select id,name from classes; 增加 全列插入&#xff1a;值的顺序与表中字段的顺序对应 insert in…

LeetCode 767. 重构字符串(堆)

文章目录1. 题目2. 解题1. 题目 给定一个字符串S&#xff0c;检查是否能重新排布其中的字母&#xff0c;使得两相邻的字符不同。 若可行&#xff0c;输出任意可行的结果。若不可行&#xff0c;返回空字符串。 示例 1: 输入: S "aab" 输出: "aba"示例 2…

5.数据库设计

三范式 经过研究和对使用中问题的总结&#xff0c;对于设计数据库提出了一些规范&#xff0c;这些规范被称为范式 数据库设计中一共有6个范式&#xff0c;一般需要遵守3范式即可 第一范式&#xff08;1NF)&#xff1a;数据库表的每一列都是不可分割的原子数据项&#xff0c;…

minix中atoi、atol、atof的实现

在minix2.0源代码中&#xff0c;有将字符串类型转换为int、long、double类型的函数实现&#xff0c;相关的实现函数分别在atoi.c、atol.c、atof.c文件中&#xff0c;我们来逐一学习其中的源码&#xff1a; 1、int atoi(register const char *nptr) &#xff1a;将字符串类型转换…

LeetCode 729. 我的日程安排表 I(set 二分查找)

文章目录1. 题目2. 解题2.1 set 二分查找2.2 差分思想1. 题目 实现一个 MyCalendar 类来存放你的日程安排。如果要添加的时间内没有其他安排&#xff0c;则可以存储这个新的日程安排。 MyCalendar 有一个 book(int start, int end)方法。 它意味着在 start 到 end 时间内增加…

java基础之lambda表达式

java基础之lambda表达式 1 什么是lambda表达式 lambda表达式是一个匿名函数&#xff0c;允许将一个函数作为另外一个函数的参数&#xff0c;将函数作为参数传递&#xff08;可理解为一段传递的代码&#xff09;。 2 为什么要用lambda表达式 lambda表达式可以写出更简洁更灵…

6.数据查询(条件

查询所有字段select * from 表名; 例&#xff1a;select * from students; 查询指定字段 在select后面的列名部分&#xff0c;可以使用as为列起别名&#xff0c;这个别名出现在结果集中 select 列1,列2,... from 表名; -- 表名.字段名 select students.id,students.name,su…

开源代码分析技巧之——打印调用逻辑

开源代码分析技巧之——打印调用逻辑 在研究开源代码时&#xff0c;大家或许都有这样的感慨&#xff1a; &#xff08;1&#xff09;代码太庞大&#xff0c;少则几万行代码&#xff0c;多则几百万行代码&#xff0c;不知道如何入手&#xff1b; &#xff08;2&#xff09;相关的…