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 相关文章推荐
模仿JQuery.extend函数扩展自己对象的js代码
Dec 09 Javascript
在JavaScript中实现类的方式探讨
Aug 28 Javascript
Jquery常用的方法汇总
Sep 01 Javascript
Javascript从数组中随机取出不同元素的两种方法
Sep 22 Javascript
Vue.js自定义指令的用法与实例解析
Jan 18 Javascript
AngularJS1.X学习笔记2-数据绑定详解
Apr 01 Javascript
vue使用axios实现文件上传进度的实时更新详解
Dec 20 Javascript
简单的Vue异步组件实例Demo
Dec 27 Javascript
vue、react等单页面项目应该这样子部署到服务器
Jan 03 Javascript
不得不知的ES6小技巧
Jul 28 Javascript
微信小程序实现日期格式化和倒计时
Nov 01 Javascript
vue3修改link标签默认icon无效问题详解
Oct 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超级全局变量
2010/01/26 PHP
深入解析PHP中的(伪)多线程与多进程
2013/07/01 PHP
Laravel5权限管理方法详解
2016/07/26 PHP
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
js控制CSS样式属性语法对照表
2012/12/11 Javascript
jquery在Chrome下获取图片的长宽问题解决
2013/03/20 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
2013/07/15 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
2014/07/10 Javascript
js星星评分效果
2014/07/24 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
详解jQuery的Cookie插件
2016/11/23 Javascript
javascript笔记之匿名函数和闭包
2017/02/06 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
vue2.* element tabs tab-pane 动态加载组件操作
2020/07/19 Javascript
如何解决django配置settings时遇到Could not import settings 'conf.local'
2014/11/18 Python
Python中的高级数据结构详解
2015/03/27 Python
Python中文件操作简明介绍
2015/04/13 Python
Python编程中装饰器的使用示例解析
2016/06/20 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
python3 pygame实现接小球游戏
2019/05/14 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
简单了解Django ContentType内置组件
2019/07/23 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
2020/05/07 Python
浅析Python打包时包含静态文件处理方法
2021/01/15 Python
初探CSS3中的calc()功能
2015/07/14 HTML / CSS
菲律宾酒店预订网站:Hotels.com菲律宾
2017/07/12 全球购物
团委竞选演讲稿
2014/04/24 职场文书
学校班班通实施方案
2014/06/11 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
关于旅游的活动方案
2014/08/15 职场文书
公务员爱岗敬业心得体会
2016/01/25 职场文书
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技