数据结构java版之《简单排序》
本篇文章针对上一篇的数组,实现几个简单的排序功能,并给出实现思路。包括冒泡、选择、插入三种最简单的排序。
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版之《简单排序》相关推荐
- 看得见的数据结构Android版之数组表(数据结构篇)
零.前言: 一讲到装东西的容器,你可能习惯于使用ArrayList和数组,你有想过ArrayList和数组的区别吗? Java的类起名字都不是随便乱起的,一般前面是辅助,后面是实质:ArrayList ...
- 看得见的数据结构Android版之数组表(视图篇)
零.前言: 1.本文的姊妹篇:看得见的数据结构Android版之表的数组实现(数据结构篇) 2.希望你可以和我在Github一同见证:DS4Android的诞生与成长,欢迎star 3.激动人心的时刻 ...
- android 获取数组大小,看得见的数据结构Android版之数组表(数据结构篇)
零.前言: 一讲到装东西的容器,你可能习惯于使用ArrayList和数组,你有想过ArrayList和数组的区别吗? Java的类起名字都不是随便乱起的,一般前面是辅助,后面是实质:ArrayList ...
- 数据结构java版之《数组》
本篇文章,使用java语言,封装一个数组工具类.不使用系统提供的api. 包括一些数组的增删改查,有序添加,二分查找等功能. package ch01;public class MyArray {// ...
- 数据结构(java版)SortedSeqList(排序顺序表)
SortedSeqList(排序顺序表) 代码部分: public class SortedSeqList<T extends Comparable<? super T>> e ...
- 数据结构java版txt,图解数据结构:使用Java
图解数据结构:使用Java 下载 mobi epub pdf ☆☆☆☆☆ 胡昭民 著 下载链接在页面底部 发表于2021-03-10 图书介绍 出版社: 清华大学出版社 ISBN:9787302402 ...
- 数据结构(Java版 2022-10-30)
第一章:算法介绍 数据结构与算法面试题" 一.字符串匹配问题:有一个字符串str1="计算机科学与技术学院欢迎您!" 和另一个字符串 str2="计算机科学与技 ...
- 数据结构(Java版2022-10-29)
第一章:算法介绍 数据结构与算法面试题" 一.字符串匹配问题:有一个字符串str1="计算机科学与技术学院欢迎您!" 和另一个字符串 str2="计算机科学与技 ...
- 数据结构java版之 栈的应用一
上一篇我们自定义了栈和队列.本篇使用栈结构来完成一个功能,看看他的应用.会分两篇讲解.本篇需求:设计一个栈结构,实现字符串的反转,字符串不包括汉子. 过程如下,因为代码做了很详细的解释.没有必要再去讲 ...
- java 数组中某个数出现的概率_剑指Offer解题报告(Java版)——排序数组中某个数的个数 38...
分析问题 问题只需要找到排序数组中某个数K的个数,由于已经是排序了,K一定是在一堆的,所以我们只需要找到第一个K的index1,然后找到最后一个K的index2就可以了 而寻找K的过程我们一般通过二分 ...
最新文章
- 利用cmake查看OpenCV的源码的方法
- jQuery知识点笔记-常用方法
- Vue项目 开启gzip
- centos中使用rpm包或yum命令在线安装的软件默认是安装在那个目录下
- html解析器c#,C# HTML解析工具HtmlAgilityPack使用实例(一)
- linux那些内存可以释放,Linux释放内存
- php pecl 扩展,PECL
- android 日历翻页动画,datetimepicker一个不错的日历android特效
- ABP框架Web API跨域问题的解决方案
- 为什么别人进步你退步,你应该如何提升自己
- core 读取视图html,ASP.NET Core MVC 之视图(Views)
- 如何做好网站优化推广
- python format是什么
- python项目实战(二):选课系统(采用面向对象思想开发)
- 秒懂MAC地址的构成和交换机基本原理
- Delphi 微信支付接口AEAD_AES_256_GCM解密
- js截取字符串(从后往前截)
- 学习记录 - 每周知识总结
- 二、插件管理器——Plugins Manager
- 台达c语言,台达PL C通信协议ModbusASCII(DVP).pdf