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 相关文章推荐
javascript小数计算出现近似值的解决办法
Feb 06 Javascript
JavaScript Event学习第六章 事件的访问
Feb 07 Javascript
基于jquery ajax 用户无刷新登录方法详解
Apr 28 Javascript
基于JQuery的多标签实现代码
Sep 19 Javascript
JavaScript中的prototype和constructor简明总结
Apr 05 Javascript
javascript中mouseover、mouseout使用详解
Jul 19 Javascript
jQuery 3.0中存在问题及解决办法
Jul 15 Javascript
vue的全局变量和全局拦截请求器的示例代码
Sep 13 Javascript
小程序实现五星点评效果
Nov 03 Javascript
vue-router传递参数的几种方式实例详解
Nov 13 Javascript
微信小程序云开发 生成带参小程序码流程
May 18 Javascript
swiper自定义分页器的样式
Sep 14 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中的日期加减方法示例
2014/08/21 PHP
自己写的php curl库实现整站克隆功能
2015/02/12 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
PHP连接sftp并下载文件的方法教程
2018/08/26 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
jQuery的12招常用技巧分享
2011/08/08 Javascript
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
2012/11/07 Javascript
js单例模式的两种方案
2013/10/22 Javascript
javascript实现json页面分页实例代码
2014/02/20 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
2014/08/30 Javascript
js实现禁止中文输入的方法
2015/01/14 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
jQuery常用的一些技巧汇总
2016/03/26 Javascript
AngularJS+Bootstrap实现多文件上传与管理
2016/11/08 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
JS实现放烟花效果
2020/03/10 Javascript
Python 实现还原已撤回的微信消息
2019/06/18 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
为什么要有struct关键字
2012/05/08 面试题
学生会部长竞聘书
2014/03/31 职场文书
《锄禾》教学反思
2014/04/08 职场文书
探亲假请假条
2014/04/11 职场文书
国旗下讲话演讲稿
2014/05/08 职场文书
2016教师节问候语
2015/11/10 职场文书
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
2021/04/01 PHP
Python关于OS文件目录处理的实例分享
2021/05/23 Python
MySQL中datetime时间字段的四舍五入操作
2021/10/05 MySQL