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 相关文章推荐
FCK调用方法..
Dec 21 Javascript
Javascript实例教程(19) 使用HoTMetal(2)
Dec 23 Javascript
JScript中使用ADODB.Stream判断文件编码的代码
Jun 09 Javascript
ExpressJS入门实例
Jan 14 Javascript
JavaScript判断数组是否包含指定元素的方法
Jul 01 Javascript
详解Vue.js 2.0 如何使用axios
Apr 21 Javascript
详解vue 模拟后台数据(加载本地json文件)调试
Aug 25 Javascript
深入掌握 react的 setState的工作机制
Sep 27 Javascript
Vue入门之数据绑定(小结)
Jan 08 Javascript
使用javascript函数编写简单银行取钱存钱流程
May 26 Javascript
Vue 中axios配置实例详解
Jul 27 Javascript
JS原形与原型链深入详解
May 09 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两种无限分类方法实例
2015/04/21 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
js函数中onmousedown和onclick的区别和联系探讨
2013/05/19 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
使用JavaScript 编写简单计算器
2014/11/24 Javascript
Highcharts使用简例及异步动态读取数据
2015/12/30 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
angular使用post、get向后台传参的问题实例
2017/05/27 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
2019/01/20 Javascript
原生JS与JQ获取元素的区别详解
2020/02/13 Javascript
在vant中使用时间选择器和popup弹出层的操作
2020/11/04 Javascript
python求列表交集的方法汇总
2014/11/10 Python
Django跨域请求CSRF的方法示例
2018/11/11 Python
在Pycharm terminal中字体大小设置的方法
2019/01/16 Python
关于Python中的向量相加和numpy中的向量相加效率对比
2019/08/26 Python
解决python有时候import不了当前的包问题
2019/08/28 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
30行Python代码实现高分辨率图像导航的方法
2020/05/22 Python
python获得命令行输入的参数的两种方式
2020/11/02 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
德国香水、化妆品和护理产品网上商店:Parfumdreams
2018/09/26 全球购物
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
药剂专业求职信
2014/06/20 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
纪念九一八事变83周年国旗下讲话稿
2014/09/15 职场文书
保密法制宣传月活动总结
2015/05/07 职场文书
2015年财政局工作总结
2015/05/21 职场文书
迎新年主持词
2015/07/06 职场文书
写好求职信的技巧解密
2019/05/14 职场文书
python图片灰度化处理的几种方法
2021/06/23 Python
Vue h函数的使用详解
2022/02/18 Vue.js