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 相关文章推荐
js实现权限树的更新权限时的全选全消功能
Feb 17 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
Mar 11 Javascript
javascript中的toFixed固定小数位数 简单实例分享
Jul 12 Javascript
鼠标选择动态改变网页背景颜色的JS代码
Dec 10 Javascript
jquery右下角自动弹出可关闭的广告层
May 08 Javascript
AngularJS入门教程之链接与图片模板详解
Aug 19 Javascript
浅谈AngularJS中$http服务的简单用法
May 15 Javascript
教你完全理解ReentrantLock重入锁
Jun 03 Javascript
Jquery 获取相同NAME 或者id删除行操作
Aug 24 jQuery
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
Nov 16 Javascript
Vue.js中v-for指令的用法介绍
Mar 13 Vue.js
Vue Mint UI mt-swipe的使用方式
Jun 05 Vue.js
轻量级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接口中interface存在的意义
2013/06/27 PHP
探寻PHP脚本不报错的原因
2014/06/12 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
php适配器模式简单应用示例
2019/10/23 PHP
兼容ie、firefox的图片自动缩放的css跟js代码分享
2013/08/12 Javascript
图片动画横条广告带上下滚动可自定义图片、链接等等
2013/10/20 Javascript
用Javascript获取页面元素的具体位置
2013/12/09 Javascript
js中substr,substring,indexOf,lastIndexOf的用法小结
2013/12/27 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
jQuery中:not选择器用法实例
2014/12/30 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
2015/03/24 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
Node.js程序中的本地文件操作用法小结
2016/03/06 Javascript
AngularJs解决跨域问题案例详解(简单方法)
2016/05/19 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
Vue.js实现分页查询功能
2020/11/15 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
2017/12/11 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
2020/11/05 Javascript
TensorFlow 合并/连接数组的方法
2018/07/27 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
python保存log日志,实现用log日志画图
2019/12/24 Python
python实现mean-shift聚类算法
2020/06/10 Python
python字典按照value排序方法
2020/12/28 Python
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
荷兰鞋类购物网站:Donelli
2019/05/24 全球购物
大学毕业生推荐信
2014/07/09 职场文书
2014年党员个人工作总结
2014/12/02 职场文书
关于感恩的作文
2019/08/26 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS
详解Node.js如何处理ES6模块
2021/05/15 Javascript
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript