冒泡排序

  • 比较数组相邻的元素。如果第一个比第二个大,就交换它们两个。
  • 对每一对相邻元素作同样的工作,这样在最后的元素应该会是最大的数。
  • 针对所有的元素重复以上的步骤,除了最后一个。
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探赜索隐四<基本排序算法>相关推荐

  1. javaSE探赜索隐四<数组>

    数组 一.概念 数组是相同数据类型元素的集合.(如果数组中存的是引用类型,则存的是对象的引用.) 数组是一种线性的数据结构. 二.声明方式 数据类型 [] 数组名(后面可以跟多个数组名定义多个数组.) ...

  2. c语言实验四报告,湖北理工学院14本科C语言实验报告实验四数组

    湖北理工学院14本科C语言实验报告实验四 数组.doc 实验四 数 组实验课程名C语言程序设计专业班级 14电气工程2班 学号 201440210237 姓名 熊帆 实验时间 5.12-5.26 实验 ...

  3. ❤️导图整理数组6:四数组的四数之和,详解Counter类实现哈希表计数,力扣454❤️

    此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), ...

  4. 【Java从入门到天黑|04】JavaSE入门之数组

    目录 数组概述 数组的四个基本特点: 数组声明创建 1.声明数组 2.创建数组

  5. javaSE探赜索隐之二<第二篇博客,磕磕绊绊,收货满满!加油>

    文章目录 IDE的使用 注释 关键字 保留字 标识符 变量 变量的分类: 按数据类型 按位置 Java数据类型 基本数据类型 数值型 整数类型 浮点类型 字符型 布尔型 引用数据类型 类 接口 数组 ...

  6. JS学习笔记 (四) 数组进阶

    1.基本知识 1.数组是值的有序集合.每个值叫做一个元素,而每个元素在数组中的位置称为索引,以数字表示,以0开始. 2.数组是无类型的.数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的 ...

  7. JavaSE(十四)——网络编程(IP地址、端口号、TCP、UDP)

    文章目录 1. 概述 2. InetAddress类 3. 端口 4. TCP协议 4.1 传输消息 4.2 文件上传 5. UDP协议 6. TCP与UDP区别 7. URL 8. 下载资源 9. ...

  8. C# 基础知识复习(四)---数组

    声明数组 在 C# 中声明一个数组,您可以使用下面的语法: datatype[] arrayName; 其中, datatype 用于指定被存储在数组中的元素的类型. [ ] 指定数组的秩(维度).秩 ...

  9. javaSE探赜索隐五<异常>

    异常 定义: (狭义)异常就是在系统运行过程中出现的问题.即程序在执行过程中出现的不正常的情况,这些情况很多不靠代码解决. (广义)开发过程中的语法或者逻辑错误导致的异常. JAVA中讨论的异常皆为( ...

最新文章

  1. C++ : 编译单元、声明和定义、头文件作用、防止头文件在同一个编译单元重复引用、static和不具名空间...
  2. matlab 中fft的用法
  3. Java基础之String深入解析
  4. 单片机与普通微型计算机不同在于,单片机与普通微型计算机的不同之处
  5. SAP CRM SPRO Customizing 里 Text Object 属性 continue 的含义
  6. dotNET Core 中怎样操作 AD?
  7. Mysql数据库---约束类型_mysql数据库的数据类型及约束
  8. Cloud Toolkit 部署应用到阿里云轻量应用服务器
  9. 一次函数的斜率公式_【海广教育数学口诀】初中数学学不会?公式这样记,让你做题效率翻倍!...
  10. 写读后感,获赠陈能技老师亲笔签名书《性能测试诊断分析与优化》中奖名单公布啦!...
  11. python人脸识别plc_实例详解Python人脸识别
  12. 方差分析、T检验、卡方分析|LSD检验可用于方差同质性检验|LSD检验法与t检验相比的优点
  13. java将xlsx类型excel导出加水印(真实水印非表面加图片)
  14. ESP32-WROOM-32E,WIFI基本功能实现,采坑经验
  15. mysql union update_MYSQL:union, 以及常用函数
  16. 实时即未来,大数据项目车联网之原始数据实时ETL任务HBase调优【九】
  17. 学习笔记(2)——TransE算法(Translating Embedding)
  18. C语言练习2-14 求奇数分之一序列前N项和
  19. 多传感器融合定位(4-基于滤波的2融合方法)2-使用仿真数据进行imu-gnss eskf和时变系统下的可观测性分析
  20. H264 SPS 中 VUI 自己碰到的一些比较关键的 字段介绍。

热门文章

  1. 如何把catia完全卸载干净_catia软件卸载不了怎么办
  2. ASP.NET 上传图片添加文字、Logo水印
  3. 免费的安装算量软件有哪些?鹏业安装算量与品茗安装算量对比
  4. 计算机网络重要知识点
  5. 计算机网路之面试常考
  6. html字体字号颜色怎么设置,html字体样式大全 html怎么改变字体大小和颜色
  7. 1tb等于多少g 1TB和500G有什么区别
  8. 『深度概念』度量学习中损失函数的学习与深入理解
  9. 非真实感渲染(NPR)论文理解及其复现(Unity) - 《Stylized Highlights for Cartoon Rendering and Animation》
  10. delmatch oracle_oracle – 无法从结果集中读取列值