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 相关文章推荐
IE与Firefox在JavaScript上的7个不同写法小结
Sep 14 Javascript
基于Jquery的简单图片切换效果
Jan 06 Javascript
javascript实现复制与粘贴操作实例
Oct 16 Javascript
jQuery实现返回顶部效果的方法
May 29 Javascript
JavaScript中使用指数方法Math.exp()的简介
Jun 15 Javascript
JavaScript实现的背景自动变色代码
Oct 17 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
Apr 12 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
Jan 18 jQuery
TypeScript类型声明书写详解
Aug 28 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
Sep 23 Javascript
JavaScript的一些小技巧分享
Jan 06 Javascript
Vue如何清空对象
Mar 03 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面向对象概念
2011/11/06 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
PHP命令Command模式用法实例分析
2018/08/08 PHP
PHP两个n位的二进制整数相加问题的解决
2018/08/26 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
js里的prototype使用示例
2010/11/19 Javascript
jquery中获取元素的几种方式小结
2011/07/05 Javascript
jquery方法+js一般方法+js面向对象方法实现拖拽效果
2012/08/30 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
JS嵌套函数调用上下文的问题解决
2014/03/26 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
举例说明如何为JavaScript的方法参数设置默认值
2015/11/17 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
Vue实现购物车功能
2017/04/27 Javascript
javascript将list转换成树状结构的实例
2017/09/08 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
详解npm 配置项registry修改为淘宝镜像
2018/09/07 Javascript
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
vue实例的选项总结
2020/06/09 Javascript
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
[04:45]上海特级锦标赛主赛事第三日TOP10
2016/03/05 DOTA
Python中文件操作简明介绍
2015/04/13 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
东方红海科技面试题软件测试方面
2012/02/08 面试题
文员个人求职自荐信
2013/09/21 职场文书
招股说明书范本
2014/05/06 职场文书
《静夜思》教学反思
2016/02/17 职场文书
Redis如何实现分布式锁
2021/08/23 Redis