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 GridView 实现自动计算操作代码
Mar 25 Javascript
JavaScript 事件的一些重要说明
Oct 25 Javascript
Javascript学习笔记6 prototype的提出
Jan 11 Javascript
JavaScript的递归之递归与循环示例介绍
Aug 05 Javascript
cookie中的path与domain属性详解
Dec 18 Javascript
利用JS生成博文目录及CSS定制博客
Feb 10 Javascript
node.js微信公众平台开发教程
Mar 04 Javascript
详解js中常规日期格式处理、月历渲染和倒计时函数
Dec 28 Javascript
vue-hook-form使用详解
Apr 07 Javascript
详解VUE2.X过滤器的使用方法
Jan 11 Javascript
vuex 项目结构目录及一些简单配置介绍
Apr 08 Javascript
JS原生带缩略图的图片切换效果
Oct 10 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
探讨:parse url解析URL,返回其组成部分
2013/06/14 PHP
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
PHP查看当前变量类型的方法
2015/07/31 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
2017/02/17 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
2017/03/06 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
2017/05/04 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
Ucren Virtual Desktop V2.0
2006/11/07 Javascript
javascript父、子页面交互技巧总结
2014/08/08 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
AngularJS基础学习笔记之指令
2015/05/10 Javascript
jQuery实现本地预览上传图片功能
2016/01/08 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
2017/09/28 Javascript
JavaScript数据结构之优先队列与循环队列实例详解
2017/10/27 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
layui文件上传控件带更改后数据传值的方法
2019/09/23 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
2020/07/20 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
详解Python程序与服务器连接的WSGI接口
2015/04/29 Python
使用pyecharts在jupyter notebook上绘图
2020/04/23 Python
python使用matplotlib画饼状图
2018/09/25 Python
Python图像处理之图片文字识别功能(OCR)
2019/07/30 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
2019/08/22 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
python实现while循环打印星星的四种形状
2019/11/23 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
2020/01/20 Python
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
财经学院自荐信范文
2014/02/02 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
计算机实训报告范文
2014/11/05 职场文书
淘宝好评语句大全
2014/12/31 职场文书
党员读书活动心得体会
2016/01/14 职场文书
Python学习之os包使用教程详解
2022/03/21 Python