javaSE探赜索隐四<基本排序算法>
冒泡排序
- 比较数组相邻的元素。如果第一个比第二个大,就交换它们两个。
- 对每一对相邻元素作同样的工作,这样在最后的元素应该会是最大的数。
- 针对所有的元素重复以上的步骤,除了最后一个。
public void bubble(int[] a){for (int i = 0; i <a.length-1 ; i++) {//第一个for循环控制排序的次数。for (int j = 0; j <a.length-1-i ; j++) {//第二个for循环控制比较的次数。if (a[j+1]<a[j]){int temp = a[j+1];a[j+1] = a[j];a[j] = temp;}}}}
选择排序
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
public static int[] selection(int[]a){if(a.length ==0){return a;}//改良前,条件只要符合就交换位置。for (int i = 0;i<a.length-1;i++){for (int j=i+1;j<a.length;j++){if (a[i]>a[j]){int temp = a[i];a[i]=a[j];a[j]=temp;}}}//改良后引入中间变量,减少交换次数。for (int i = 0; i < a.length-1 ; i++) {int minIndex = i;for (int j = i;j<a.length;j++){if(a[i]>a[j]){minIndex = j;}}int temp = a[i];a[i]=a[minIndex];a[minIndex]=temp;}return a;}
插入排序
- 从第一个元素开始,该元素可以认为已经被排序。(初始时,已排序的元素为零个。)
- 取出下一个元素,在已经排序的元素序列中从后向前扫描。
- 如果该元素(已排序)大于新元素,将该元素移到下一位置。
- 重复上一步,直到找到已排序的元素小于或者等于新元素的位置。
public static void sort(int [] array){int currentvalue;for (int i = 0; i < array.length - 1; i++) {currentvalue = array[i + 1];//找到当前需要排序的数/值int preIndex = i;//开始比较的位置while (preIndex >= 0 && currentvalue < array[preIndex]) {array[preIndex + 1] = array[preIndex];preIndex--;}array[preIndex + 1] = currentvalue;}}a
javaSE探赜索隐四<基本排序算法>相关推荐
- javaSE探赜索隐四<数组>
数组 一.概念 数组是相同数据类型元素的集合.(如果数组中存的是引用类型,则存的是对象的引用.) 数组是一种线性的数据结构. 二.声明方式 数据类型 [] 数组名(后面可以跟多个数组名定义多个数组.) ...
- c语言实验四报告,湖北理工学院14本科C语言实验报告实验四数组
湖北理工学院14本科C语言实验报告实验四 数组.doc 实验四 数 组实验课程名C语言程序设计专业班级 14电气工程2班 学号 201440210237 姓名 熊帆 实验时间 5.12-5.26 实验 ...
- ❤️导图整理数组6:四数组的四数之和,详解Counter类实现哈希表计数,力扣454❤️
此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), ...
- 【Java从入门到天黑|04】JavaSE入门之数组
目录 数组概述 数组的四个基本特点: 数组声明创建 1.声明数组 2.创建数组
- javaSE探赜索隐之二<第二篇博客,磕磕绊绊,收货满满!加油>
文章目录 IDE的使用 注释 关键字 保留字 标识符 变量 变量的分类: 按数据类型 按位置 Java数据类型 基本数据类型 数值型 整数类型 浮点类型 字符型 布尔型 引用数据类型 类 接口 数组 ...
- JS学习笔记 (四) 数组进阶
1.基本知识 1.数组是值的有序集合.每个值叫做一个元素,而每个元素在数组中的位置称为索引,以数字表示,以0开始. 2.数组是无类型的.数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的 ...
- JavaSE(十四)——网络编程(IP地址、端口号、TCP、UDP)
文章目录 1. 概述 2. InetAddress类 3. 端口 4. TCP协议 4.1 传输消息 4.2 文件上传 5. UDP协议 6. TCP与UDP区别 7. URL 8. 下载资源 9. ...
- C# 基础知识复习(四)---数组
声明数组 在 C# 中声明一个数组,您可以使用下面的语法: datatype[] arrayName; 其中, datatype 用于指定被存储在数组中的元素的类型. [ ] 指定数组的秩(维度).秩 ...
- javaSE探赜索隐五<异常>
异常 定义: (狭义)异常就是在系统运行过程中出现的问题.即程序在执行过程中出现的不正常的情况,这些情况很多不靠代码解决. (广义)开发过程中的语法或者逻辑错误导致的异常. JAVA中讨论的异常皆为( ...
最新文章
- C++ : 编译单元、声明和定义、头文件作用、防止头文件在同一个编译单元重复引用、static和不具名空间...
- matlab 中fft的用法
- Java基础之String深入解析
- 单片机与普通微型计算机不同在于,单片机与普通微型计算机的不同之处
- SAP CRM SPRO Customizing 里 Text Object 属性 continue 的含义
- dotNET Core 中怎样操作 AD?
- Mysql数据库---约束类型_mysql数据库的数据类型及约束
- Cloud Toolkit 部署应用到阿里云轻量应用服务器
- 一次函数的斜率公式_【海广教育数学口诀】初中数学学不会?公式这样记,让你做题效率翻倍!...
- 写读后感,获赠陈能技老师亲笔签名书《性能测试诊断分析与优化》中奖名单公布啦!...
- python人脸识别plc_实例详解Python人脸识别
- 方差分析、T检验、卡方分析|LSD检验可用于方差同质性检验|LSD检验法与t检验相比的优点
- java将xlsx类型excel导出加水印(真实水印非表面加图片)
- ESP32-WROOM-32E,WIFI基本功能实现,采坑经验
- mysql union update_MYSQL:union, 以及常用函数
- 实时即未来,大数据项目车联网之原始数据实时ETL任务HBase调优【九】
- 学习笔记(2)——TransE算法(Translating Embedding)
- C语言练习2-14 求奇数分之一序列前N项和
- 多传感器融合定位(4-基于滤波的2融合方法)2-使用仿真数据进行imu-gnss eskf和时变系统下的可观测性分析
- H264 SPS 中 VUI 自己碰到的一些比较关键的 字段介绍。
热门文章
- 如何把catia完全卸载干净_catia软件卸载不了怎么办
- ASP.NET 上传图片添加文字、Logo水印
- 免费的安装算量软件有哪些?鹏业安装算量与品茗安装算量对比
- 计算机网络重要知识点
- 计算机网路之面试常考
- html字体字号颜色怎么设置,html字体样式大全 html怎么改变字体大小和颜色
- 1tb等于多少g 1TB和500G有什么区别
- 『深度概念』度量学习中损失函数的学习与深入理解
- 非真实感渲染(NPR)论文理解及其复现(Unity) - 《Stylized Highlights for Cartoon Rendering and Animation》
- delmatch oracle_oracle – 无法从结果集中读取列值