Java关于排序的介绍1-简单排序
来源:互联网 发布:sketch有没有windows版 编辑:程序博客网 时间:2024/06/05 04:10
本篇博客主要是介绍几种常用的简单排序的代码
首先是介绍-冒泡排序
下面这个冒泡排序是比较简单粗暴的(不建议使用)
进行N(数组长度)趟比较
每趟比较都把所有的数据进行比较
for (int i=0;i<arrs.length;i++) { for (int j=0;j<arrs.length-1;j++) { if (arrs[j] > arrs[j+1]) { int temp = arrs[j]; arrs[j] = arrs[j+1]; arrs[j+1] = temp; } } }
下面介绍一种比较好的冒泡排序
进行N-1趟比较(第N趟排序就一个数据没有必要再次进行比较了)
每趟比较都从去除已经比较完成的数据以后进行比较
for (int i=arrs.length-1; i>=1; i--) { for (int j=0; j<i; j++) { if (arrs[j] > arrs[j+1]) { int temp = arrs[j]; arrs[j] = arrs[j+1]; arrs[j+1] = temp; } } }
下面介绍-选择排序
选择排序相比较冒泡排序主要是减少了数据的交换次数
for (int i = 0; i < arrs.length - 1; i++) { int minIndex = i; for (int j = i+1; j < arrs.length; j++) { if (arrs[j] < arrs[minIndex]) { minIndex = j; } } int temp = arrs[i]; arrs[i] = arrs[minIndex]; arrs[minIndex] = temp; }
通过代码对比选择排序和冒泡排序也可以看出来,选择排序在每趟内部的比较只是记录下了比较结果的索引位置,并没有进行数据交换操作,而在每趟循环的最后进行了一次数据交换。
下面介绍-插入排序(插入排序是后面希尔排序的一个基础)
插入排序主要是实现了局部有序
选定一个标记位,在该标记位左边实现局部有序
for (int i = 1; i < arrs.length; i++) { int j = i; int temp = arrs[i]; while (j > 0 && arrs[j-1] > temp) { arrs[j] = arrs[j-1]; j--; } arrs[j] = temp; }
简单排序就介绍这里。
推荐书籍
《java数据结构和算法》
《算法》
0 0
- Java关于排序的介绍1-简单排序
- 关于归并排序的简单介绍
- Java关于排序的介绍2-归并排序
- Java关于排序的介绍3-高级排序
- Java排序以及简单的快速排序
- Java实现简单的排序
- java的简单排序算法
- 关于JAVA排序的一些
- Java 关于List 的排序
- 关于简单排序
- 关于排序问题-冒泡排序的简单案例
- java简单排序-选择排序
- java简单排序-插入排序
- Java 简单排序--冒泡排序
- 关于扑克牌的简单排序问题
- 关于冒泡排序的简单应用
- iOS关于数组的简单排序
- 关于三种简单排序的想法
- python文件读写编码
- 群英传学习笔记
- Android实现渐变title栏
- TeamViewer连接密码问题
- linux重启和关闭系统命令
- Java关于排序的介绍1-简单排序
- iOS 支付宝支付
- 回调函数的作用
- leetcode 240. Search a 2D Matrix II
- 解决java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader couldn't find "libDatabaseOp.so"
- javascript和 jQuery中的AJAX,以及AJAX各种跨域技术
- android 键盘按键监听
- x264代码剖析(一):图文详解x264在Windows平台上的搭建
- Mybatis一级缓存