JAVA四种基本排序方法实例总结


Posted in Javascript onJuly 24, 2015

本文实例讲述了JAVA四种基本排序方法。分享给大家供大家参考。具体如下:

JAVA四种基本排序,包括冒泡法,插入法,选择法,SHELL排序法.其中选择法是冒泡法的改进,SHELL排序法是 插入法的改进.所以从根本上来说可以归纳为两种不同的排序方法:即:插入法&冒泡法

一 插入法:

遍历排序集合,每到一个元素时,都要将这个元素与所有它之前的元素遍历比较一遍,让符合排序顺序的元素挨个移动到当前范围内它最应该出现的位置。交换是相邻遍历移动,双重循环控制实现.这种排序法属于地头蛇类型,在我的地牌上我要把所有的东西按一定的顺序规整,过来一个,规整一个.

处理代码如下:

public void sort(int[] data) {
int temp; 
for(int i=1; i〈data.length; i++){
for(int j=i; (j〉0)&&(data[j]〉data[j-1]); j--){
temp=date[j]; 
data[j]=data[j-1]; 
data[j-1]=temp; }
} 
}

二 冒泡法:

比较容易,它的内层循环保证遍历一次后,集合中最小(大)元素出现在它的正确位置,下一次就是次小元素。。。该方法在集合分布的各种情况下交换移动的次数基本不变,属于最慢的一种排序。实现也是双重循环控制。这种排序法属于过江龙,就是要找到极端,但是过奖龙也有大哥,二哥等,所以他们只能是大哥挑了二哥挑.

处理代码如下:

public static int [] maopao(int[] data) {
int temp; 
for(int i=0; i〈data.length-1; i++){
for(int j=i+1; j〈data.length; j++){
if(data[i]〈data[j]){
temp=data[i]; 
data[i]=data[j]; 
data[j]=temp; 
} 
}
}
return data;

三 选择法:

该方法只是通过遍历集合记录最小(大)元素的位置,一次遍历完后,再进行交换位置操作,类似冒泡,但在比较过程中,不进行交换操作,只记录元素位置。一次遍历只进行一次交换操作。这个对与交换次序比较费时的元素比较适合。这种排序法比冒泡法要城府要深的多,我先记住极端数据,待遍历数据完了之后,我再处理,不像冒泡法那样只要比自己极端一点的就要处理,选择法只处理本身范围内的最极端数据.

public static void xuanze(int[] data) {
int temp; 
for (int i = 0; i 〈 data.length; i++) {
int lowIndex = i; 
for (int j = data.length - 1; j 〉 i; j--) {
if (data[j] 〉 data[lowIndex]) {
lowIndex = j; 
}
}
temp=data[i]; 
data[i]=data[lowIndex]; 
data[lowIndex]=temp; 
}
}

四 Shell排序:

它是对插入排序的一种改进,是考虑将集合元素按照一定的基数划分成组去排序,让每一组在局部范围内先排成基本有序,最后在进行一次所有元素的插入排序。

public void sort(int[] data) {
for(int i=data.length/2; i〉2; i/=2){
for(int j=0; j〈i; j++){
insertSort(data,j,i); 
}
}
insertSort(data,0,1); 
}
private void insertSort(int[] data, int start, int inc) {
int temp; 
for(int i=start+inc; i〈data.length; i+=inc){
for(int j=i; (j〉=inc)&&(data[j]〈data[j-inc]); j-=inc){
temp=data[j]; 
data[j]=data[j-inc]
data[j-inc]=temp; 
}
}
}

希望本文所述对大家的java程序设计有所帮助。

Javascript 相关文章推荐
jQuery Validation插件remote验证方式的Bug解决
Jul 01 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
Apr 11 Javascript
一个简单的Node.js异步操作管理器分享
Apr 29 Javascript
jQuery选择器全集详解
Nov 24 Javascript
CSS3,HTML5和jQuery搜索框集锦
Dec 02 Javascript
JavaScript实现的多个图片广告交替显示效果代码
Sep 04 Javascript
QQ登录背景闪动效果附效果演示源码下载
Sep 22 Javascript
Javascript中的Prototype到底是什么
Feb 16 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
Dec 14 Javascript
vue2.0在没有dev-server.js下的本地数据配置方法
Feb 23 Javascript
浅析js中mvvm模式实现的原理
Oct 06 Javascript
vue-cli 3.x配置跨域代理的实现方法
Apr 12 Javascript
轻量级javascript 框架Backbone使用指南
Jul 24 #Javascript
node.js操作mysql(增删改查)
Jul 24 #Javascript
浅谈javascript获取元素transform参数
Jul 24 #Javascript
js实现汉字排序的方法
Jul 23 #Javascript
javascript实现全角半角检测的方法
Jul 23 #Javascript
javascript比较两个日期相差天数的方法
Jul 23 #Javascript
jquery实现简单的轮换出现效果实例
Jul 23 #Javascript
You might like
php获取操作系统语言代码
2013/11/04 PHP
PHP中cookie和session的区别实例分析
2014/08/28 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
JavaScript异步调用定时方法并停止该方法实现代码
2012/03/16 Javascript
关于Javascript作用域链的八点总结
2013/12/06 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
javascript移出节点removeChild()使用介绍
2014/04/03 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
jquery悬浮提示框完整实例
2016/01/13 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
微信小程序 删除项目工程实现步骤
2016/11/10 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
使用 js 简单的实现 bind、call 、aplly代码实例
2019/09/07 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
对layui数据表格动态cols(字段)动态变化详解
2019/10/25 Javascript
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
python遍历数组的方法小结
2015/04/30 Python
python3实现磁盘空间监控
2018/06/21 Python
Python动态生成多维数组的方法示例
2018/08/09 Python
如何用Python破解wifi密码过程详解
2019/07/12 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
商场拾金不昧表扬信
2014/01/13 职场文书
文秘个人求职信范文
2014/04/22 职场文书
销售求职信范文
2014/05/26 职场文书
放飞梦想演讲稿200字
2014/08/26 职场文书
2014年质检员工作总结
2014/11/18 职场文书
付款证明格式范文
2015/06/19 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书
JavaScript 实现页面滚动动画
2021/04/24 Javascript
python中对列表的删除和添加方法详解
2022/02/24 Python