本篇文章针对上一篇的数组,实现几个简单的排序功能,并给出实现思路。包括冒泡、选择、插入三种最简单的排序。

1、冒泡排序:

​实现思路图解:

public static void sort(int[] arr) {/** 分析: 五个元素,总共比较了四次 比较次数为length-1 1、从尾部开始,与前面的元素两两比较,小了往前排。大了不搭理他* 2、第一次比较完毕之后,下一次比较的时候会减少一次比较次数。减少的这次次数是数组前面的位置,因为每次比较之后最小值就在最前位置了* 3、第一次比较有0个元素不必;第二次比较有1个元素不比,第三次比较,2个元素不比 4、比较次数length-1*/for (int i = 0; i < arr.length - 1; i++) {// 外层控制次数// 定义临时变量int temp;// 比较的次数也会减少for (int j = arr.length-1; j > i; j--) {// 如果后面的数小if (arr[j] < arr[j - 1]) {// 交换到前面temp = arr[j];arr[j] = arr[j - 1];arr[j - 1] = temp;}}}}

2、选择排序:

package ch02;
/*** 选择排序* @author lenovo**/
public class SelectSort {public static void sort(int[] arr){//外循环控制次数for (int i = 0; i < arr.length; i++) {int k = i;//k赋初始值int temp;for (int j = i+1; j < arr.length; j++) {if(arr[k] > arr[j]){k = j;//让k值永远指向最小的索引}}//交换,使得最前面的位置为最小值。即把k索引对应的值与i值交换temp = arr[k];arr[k] = arr[i];arr[i] = temp;}}
}

3、插入排序;

package ch02;/*** 插入排序* * @author lenovo* */
public class InsertSort {public static void sort(int[] arr) {int j = 0;// 数组下标int i = 0;// 插入排序次数// 从第二个位置开始比较for (i = 1; i < arr.length; i++) {// 每一次都记录下初始值赋值给临时变量int temp = arr[i];for (j = i - 1; j >= 0; j--) {//j表示上一个位置,j+1表示当前位置。往当前位置插入数据// 前面的数大于当前临时变量里面的数if (arr[j] > temp) {// 把前面位置的值赋值给当前位置值arr[j + 1] = arr[j];} else {break;}}//就把temp值赋值给当前位置arr[j + 1] = temp;}}
}

数据结构java版之《简单排序》相关推荐

  1. 看得见的数据结构Android版之数组表(数据结构篇)

    零.前言: 一讲到装东西的容器,你可能习惯于使用ArrayList和数组,你有想过ArrayList和数组的区别吗? Java的类起名字都不是随便乱起的,一般前面是辅助,后面是实质:ArrayList ...

  2. 看得见的数据结构Android版之数组表(视图篇)

    零.前言: 1.本文的姊妹篇:看得见的数据结构Android版之表的数组实现(数据结构篇) 2.希望你可以和我在Github一同见证:DS4Android的诞生与成长,欢迎star 3.激动人心的时刻 ...

  3. android 获取数组大小,看得见的数据结构Android版之数组表(数据结构篇)

    零.前言: 一讲到装东西的容器,你可能习惯于使用ArrayList和数组,你有想过ArrayList和数组的区别吗? Java的类起名字都不是随便乱起的,一般前面是辅助,后面是实质:ArrayList ...

  4. 数据结构java版之《数组》

    本篇文章,使用java语言,封装一个数组工具类.不使用系统提供的api. 包括一些数组的增删改查,有序添加,二分查找等功能. package ch01;public class MyArray {// ...

  5. 数据结构(java版)SortedSeqList(排序顺序表)

    SortedSeqList(排序顺序表) 代码部分: public class SortedSeqList<T extends Comparable<? super T>> e ...

  6. 数据结构java版txt,图解数据结构:使用Java

    图解数据结构:使用Java 下载 mobi epub pdf ☆☆☆☆☆ 胡昭民 著 下载链接在页面底部 发表于2021-03-10 图书介绍 出版社: 清华大学出版社 ISBN:9787302402 ...

  7. 数据结构(Java版 2022-10-30)

    第一章:算法介绍 数据结构与算法面试题" 一.字符串匹配问题:有一个字符串str1="计算机科学与技术学院欢迎您!" 和另一个字符串 str2="计算机科学与技 ...

  8. 数据结构(Java版2022-10-29)

    第一章:算法介绍 数据结构与算法面试题" 一.字符串匹配问题:有一个字符串str1="计算机科学与技术学院欢迎您!" 和另一个字符串 str2="计算机科学与技 ...

  9. 数据结构java版之 栈的应用一

    上一篇我们自定义了栈和队列.本篇使用栈结构来完成一个功能,看看他的应用.会分两篇讲解.本篇需求:设计一个栈结构,实现字符串的反转,字符串不包括汉子. 过程如下,因为代码做了很详细的解释.没有必要再去讲 ...

  10. java 数组中某个数出现的概率_剑指Offer解题报告(Java版)——排序数组中某个数的个数 38...

    分析问题 问题只需要找到排序数组中某个数K的个数,由于已经是排序了,K一定是在一堆的,所以我们只需要找到第一个K的index1,然后找到最后一个K的index2就可以了 而寻找K的过程我们一般通过二分 ...

最新文章

  1. 利用cmake查看OpenCV的源码的方法
  2. jQuery知识点笔记-常用方法
  3. Vue项目 开启gzip
  4. centos中使用rpm包或yum命令在线安装的软件默认是安装在那个目录下
  5. html解析器c#,C# HTML解析工具HtmlAgilityPack使用实例(一)
  6. linux那些内存可以释放,Linux释放内存
  7. php pecl 扩展,PECL
  8. android 日历翻页动画,datetimepicker一个不错的日历android特效
  9. ABP框架Web API跨域问题的解决方案
  10. 为什么别人进步你退步,你应该如何提升自己
  11. core 读取视图html,ASP.NET Core MVC 之视图(Views)
  12. 如何做好网站优化推广
  13. python format是什么
  14. python项目实战(二):选课系统(采用面向对象思想开发)
  15. 秒懂MAC地址的构成和交换机基本原理
  16. Delphi 微信支付接口AEAD_AES_256_GCM解密
  17. js截取字符串(从后往前截)
  18. 学习记录 - 每周知识总结
  19. 二、插件管理器——Plugins Manager
  20. 台达c语言,台达PL C通信协议ModbusASCII(DVP).pdf

热门文章

  1. 专利申请的五个步骤介绍
  2. ace admi 三 侧边栏
  3. 绕过杀软!SQL Server Transact-SQL 的无文件攻击姿势
  4. Mybatis执行批量插入返回数据库主键列表
  5. QuickStart\6.Mspaint
  6. 博途位置型PID/PI控制器算法 (附SCL源代码)
  7. 数据分析学习笔记(二) 数据分析的思维技巧
  8. Microblaze搭建LWIP
  9. ppt中的流程图怎么整体移动_ppt里流程图随意移动的动画如何制作?
  10. 2020年的全球土地利用数据可以免费下载了