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 相关文章推荐
如何简单地用YUI做JavaScript动画
Mar 10 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
Nov 20 Javascript
javascript 单例/单体模式(Singleton)
Apr 07 Javascript
js window.onload 加载多个函数和追加函数详解
Jan 08 Javascript
使用JavaScript制作一个简单的计数器的方法
Jul 07 Javascript
走进javascript——不起眼的基础,值和分号
Feb 24 Javascript
微信小程序 自定义消息提示框
Aug 06 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
Aug 30 Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
Oct 08 Javascript
Vue.js实现数据响应的方法
Aug 13 Javascript
vue v-for 使用问题整理小结
Aug 04 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
Jun 11 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出错界面
2006/10/09 PHP
PHP实现即时输出、实时输出内容方法
2015/05/27 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
php英文单词统计器
2016/06/23 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
javascript+xml技术实现分页浏览
2008/07/27 Javascript
慎用 somefunction.prototype 分析
2009/06/02 Javascript
基于jquery实现漂亮的动态信息提示效果
2011/08/02 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
JS比较两个时间大小的简单示例代码
2013/12/20 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
JavaScript的设计模式经典之代理模式
2016/02/24 Javascript
jQuery插件Validation快速完成表单验证的方式
2016/07/28 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
JS实现多功能计算器
2020/10/28 Javascript
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
[02:46]完美世界DOTA2联赛PWL DAY4集锦
2020/11/03 DOTA
朴素贝叶斯算法的python实现方法
2014/11/18 Python
python中常用的九种预处理方法分享
2016/09/11 Python
Python中文件I/O高效操作处理的技巧分享
2017/02/04 Python
Python实现excel转sqlite的方法
2017/07/17 Python
python实现梯度下降算法
2020/03/24 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
Python计算不规则图形面积算法实现解析
2019/11/22 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
Feelunique澳大利亚:欧洲的化妆品零售电商
2019/12/18 全球购物
医院护士的求职信范文
2013/12/26 职场文书
党建示范点实施方案
2014/03/12 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL
MySql新手入门的基本操作汇总
2021/05/13 MySQL
angular4实现带搜索的下拉框
2022/03/25 Javascript
Python实现双向链表基本操作
2022/05/25 Python
GoFrame基于性能测试得知grpool使用场景
2022/06/21 Golang