E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
java排序
java排序
之快排
这篇文章来谈谈快排,最近有一种感觉,只要有规律可循的代码,分解成为两部分以后效率就会提高很多。代码思想如下 这个代码写的是快排,快排最主要的思维就是寻找一个分界值,大的放在一边,小的放在一边,然后递归分别处理大的和小的, 这里需要注意的是我们在移动游标是需要的是加上等于分界的值,否则的话如果有相等的值就会进入死循环, 很简单的来说,当以一个数为分界值的时候,那么另一个和他相同的数如
justperseve
·
2016-04-29 09:00
java基础算法
[学习笔记]
Java排序
算法之归并排序
归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(DivideandConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表
u010388781
·
2016-04-27 22:00
java排序
之shell排序
之前的几篇关于排序的算法都是比较简单的排序,虽然不一定可以写出来,但是一眼就可以看懂,接下来的几篇的排序可能就需要仔细思考一下,或者画图描绘一下了,这篇文章讲的死shell排序,也叫增量排序,它的本质是插入排序,通过将数组数组的方式来将增加排序的速度,分组的方式第一次将数组的长度/2,第二次/4,当结果等于1的时候,那么将这个数组进行插入排序就完成了排序,当然分组时也是需要排序的,所以我认为这个和
justperseve
·
2016-04-27 20:00
java基础算法
使用
java排序
的几种方式
归并排序的算法的关键也在于对递归的利用//归并排序算法publicclassmergSort{publicstaticvoidmergeSort(int[]list){if(list.length>1){//归并排序上半部分int[]firstHalf=newint[list.length/2];System.arraycopy(list,0,firstHalf,0,list.length/2);
wanqianbudai
·
2016-04-17 00:34
算法
[学习笔记]
Java排序
算法:希尔排序(Shell排序)
希尔排序(Shell排序)希尔排序(缩小增量法)属于插入类排序,由Shell提出,希尔排序对直接插入排序进行了简单的改进:它通过加大插入排序中元素之间的间隔,并在这些有间隔的元素中进行插入排序,从而使数据项大跨度地移动,当这些数据项排过一趟序之后,希尔排序算法减小数据项的间隔再进行排序,依次进行下去,进行这些排序时的数据项之间的间隔被称为增量,习惯上用字母h来表示这个增量。常用的h序列由Knuth
u010388781
·
2016-04-16 13:00
Java排序
JAVA排序
之Comparable和Comparator
这里要讲的不是常见的譬如选择排序,冒泡排序,插入排序之类的具体算法,而是指执行这些算法时,比较俩个不同对象的“大小”操作,对于简单的整型i>j的操作上面的排序算法明显可行,但当我们对多个对象进行比较呢?比较的依据不是整型的数据类型呢?这样的比较object1>object2明显是不可能通过编译的,为了解决对象比较的问题,JDK提供了俩个接口java.lang.Comparable和java.uti
W_ILU
·
2016-04-09 20:00
java
排序算法
java排序
——选择、插入、冒泡、二分法
1.简单选择排序:(选出最小值,放在第一位,然后第一位向后推移,如此循环)第一位与后面每一个逐个比较,每次都使最小的置顶,第一位向后推进(即刚选定的第一位是最小值,不再参与比较,比较次数减1)复杂度:所需进行记录移动的操作次数较少0--3(n-1),无论记录的初始排列如何,所需的关键字间的比较次数相同,均为n(n-1)/2,总的时间复杂度为O(n2);空间复杂度O(1)算法改进:每次对比,都是为了
Clarissatt
·
2016-03-31 18:16
java排序
——选择、插入、冒泡、二分法
1.简单选择排序:(选出最小值,放在第一位,然后第一位向后推移,如此循环)第一位与后面每一个逐个比较,每次都使最小的置顶,第一位向后推进(即刚选定的第一位是最小值,不再参与比较,比较次数减1)复杂度:所需进行记录移动的操作次数较少0--3(n-1),无论记录的初始排列如何,所需的关键字间的比较次数相同,均为n(n-1)/2,总的时间复杂度为O(n2);空间复杂度O(1)算法改进:每次对比,都是为了
Clarissatt
·
2016-03-31 18:16
Java排序
算法:归并排序
Java排序
算法(九):归并排序归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。
·
2016-03-31 03:00
java
归并排序
排序算法
java排序
算法二分法 希尔排序 快速排序 归并排序
packagedataStruct;publicclassSortMedth{publicstaticvoidmain(String[]args){inta[]={21,25,49,25,16,8,-101,3};//bubbleSort(a); 冒泡排序//bubbleSort1(a); 优化后的冒泡排序//selectSort(a); 选择排序//insertSort(a); 插入排序//in
qq_28654189
·
2016-03-12 10:00
java排序
——选择、插入、冒泡、二分法
1.简单选择排序:(选出最小值,放在第一位,然后第一位向后推移,如此循环)第一位与后面每一个逐个比较,每次都使最小的置顶,第一位向后推进(即刚选定的第一位是最小值,不再参与比较,比较次数减1)复杂度:所需进行记录移动的操作次数较少 0--3(n-1) ,无论记录的初始排列如何,所需的关键字间的比较次数相同,均为n(n-1)/2,总的时间复杂度为O(n2);空间复杂度 O(1)算法改进:每次对比,都
Clarissatt
·
2016-03-11 21:00
160308、
java排序
(形如1.1、1.2.1)
packagecom.rick.sample; importjava.util.ArrayList;importjava.util.Collections;importjava.util.Comparator;importjava.util.List; publicclassSortUtilDemo{ publicstaticvoidsortIdentify(Listlists){SortComp
目标奔雷手
·
2016-03-08 12:00
Java排序
算法总结之(五)—— 基数排序
排序方法可以分为两种:内部排序和外部排序内部排序的方法很多,常用的大致可以分为:插入排序(直接插入排序、折半插入排序、希尔排序)交换排序(冒泡排序、快速排序)选择排序(简单选择排序、堆排序)归并排序基数排序基数排序基本思想:与之前各种排序算法需要比较和移动不同,基数排序不需要比较,只通过关键字分类来完成排序。比如一个序列有n个数据{R1,R2,R3,…,Rn},每个数据含有k个关键字Ri=(Ai,
Appletable
·
2016-03-03 14:00
java
二维数组
数据
排序算法
基数排序
Java排序
算法总结之(四)——归并排序
排序方法可以分为两种:内部排序和外部排序内部排序的方法很多,常用的大致可以分为:插入排序(直接插入排序、折半插入排序、希尔排序)交换排序(冒泡排序、快速排序)选择排序(简单选择排序、堆排序)归并排序基数排序归并排序:基本思想:将两个或两个以上的有序表组合成一个新的有序表。归并的思路很好理解,有下面的示例:示例:Java代码:publicclassMSort{publicstaticvoidsort
appletable
·
2016-03-03 11:59
Java排序算法总结
Java排序
算法总结之(四)——归并排序
排序方法可以分为两种:内部排序和外部排序内部排序的方法很多,常用的大致可以分为:插入排序(直接插入排序、折半插入排序、希尔排序)交换排序(冒泡排序、快速排序)选择排序(简单选择排序、堆排序)归并排序基数排序归并排序:基本思想:将两个或两个以上的有序表组合成一个新的有序表。归并的思路很好理解,有下面的示例:示例: Java代码:publicclassMSort{ publicstaticv
Appletable
·
2016-03-03 11:00
java
归并排序
排序算法
Java排序
算法总结之(三)——选择排序(简单选择排序、堆排序)
排序方法可以分为两种:内部排序和外部排序内部排序的方法很多,常用的大致可以分为:插入排序(直接插入排序、折半插入排序、希尔排序)交换排序(冒泡排序、快速排序)选择排序(简单选择排序、堆排序)归并排序基数排序选择排序1.简单选择排序基本思想:对数列的n个元素进行比较,选出最小(或者最大)的元素,与起始位置的值交换,再从余下的数据中找到最小(最大)值,放在已排序部分的末尾,直到排序完毕。示例:选择排序
appletable
·
2016-03-02 15:58
Java排序算法总结
Java排序
算法总结之(三)——选择排序(简单选择排序、堆排序)
排序方法可以分为两种:内部排序和外部排序内部排序的方法很多,常用的大致可以分为:插入排序(直接插入排序、折半插入排序、希尔排序)交换排序(冒泡排序、快速排序)选择排序(简单选择排序、堆排序)归并排序基数排序选择排序1.简单选择排序基本思想:对数列的n个元素进行比较,选出最小(或者最大)的元素,与起始位置的值交换,再从余下的数据中找到最小(最大)值,放在已排序部分的末尾,直到排序完毕。示例:选择排序
Appletable
·
2016-03-02 15:00
java
选择排序
堆排序
Java排序
七:快排
publicclassTestDemo{ publicstaticvoidmain(String[]args){ int[]arr=newint[10]; Randomrandom=newRandom(); for(inti=0;i=temp&&left
liaomengge
·
2016-03-01 23:00
Java排序
五:归并排序
publicclassTestDemo{ publicstaticvoidmain(String[]args){ int[]arr=newint[10]; Randomrandom=newRandom(); for(inti=0;i=right) return; intmiddle=(left+right)>>0x1; sort(arr,left,middle); sort(arr,middle+
liaomengge
·
2016-03-01 23:00
Java排序
四:二分插入排序
publicclassTestDemo{ publicstaticvoidmain(String[]args){ int[]arr=newint[10]; Randomrandom=newRandom(); for(inti=0;i>0x1; if(num=left;j--){ arr[j+1]=arr[j]; } arr[left]=num; } } privatestaticvoidswap
liaomengge
·
2016-03-01 23:00
Java排序
三:直接插入排序
publicclassTestDemo{ publicstaticvoidmain(String[]args){ int[]arr=newint[10]; Randomrandom=newRandom(); for(inti=0;i=0&&arr[j]>tmp){ arr[j+1]=arr[j]; j--; } arr[j+1]=tmp; } } privatestaticvoidswap(in
liaomengge
·
2016-03-01 23:00
Java排序
二:选择排序
publicclassTestDemo{ publicstaticvoidmain(String[]args){ int[]arr=newint[10]; Randomrandom=newRandom(); for(inti=0;iarr[j]){ min=j; } } if(i!=min){ swap(arr,i,min); } } } privatestaticvoidswap(int[]a
liaomengge
·
2016-03-01 23:00
Java排序
一:冒泡排序
publicclassTestDemo{ publicstaticvoidmain(String[]args){ int[]arr=newint[10]; Randomrandom=newRandom(); for(inti=0;i
liaomengge
·
2016-03-01 23:00
Java排序
六:堆排序
/** *@authorliaomengge *堆排序,依据完全二叉树的特性,至少只存在左节点,不存在右节点,且当i在n/2+1-n之间属于叶子节点, *故建立最大(最小)堆,只需要在[0,(n-1)/2],注:数组下表从0开始 * */ publicclassTestDemo{ publicstaticvoidmain(String[]args){ int[]arr=newint[10]; R
liaomengge
·
2016-03-01 23:00
Java排序
算法总结之(二)——基于交换排序(冒泡排序、快速排序)
排序方法可以分为两种:内部排序和外部排序内部排序的方法很多,常用的大致可以分为:插入排序(直接插入排序、折半插入排序、希尔排序)交换排序(冒泡排序、快速排序)选择排序(简单选择排序、堆排序)归并排序基数排序交换排序1.冒泡排序基本操作:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素
appletable
·
2016-03-01 20:22
Java排序算法总结
Java排序
算法总结之(二)——基于交换排序(冒泡排序、快速排序)
排序方法可以分为两种:内部排序和外部排序内部排序的方法很多,常用的大致可以分为:插入排序(直接插入排序、折半插入排序、希尔排序)交换排序(冒泡排序、快速排序)选择排序(简单选择排序、堆排序)归并排序基数排序交换排序1.冒泡排序基本操作:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素
Appletable
·
2016-03-01 20:00
java
算法
冒泡排序
快速排序
JAVA排序
对于
JAVA排序
需要实现Comparator接口,来指定按什么顺序来排序,集合类用Collections.sort方法,数组用Array.sort方法,默认按升序排序publicclassMusic{
nvnnv
·
2016-03-01 16:00
Java排序
算法总结之(一)——插入排序(直接插入排序、折半插入排序、希尔排序)
排序方法可以分为两种:内部排序和外部排序内部排序的方法很多,常用的大致可以分为:插入排序(直接插入排序、折半插入排序、希尔排序)交换排序(冒泡排序、快速排序)选择排序(简单选择排序、堆排序)归并排序基数排序评价排序算法的优劣一般从三个角度分析:空间复杂度:存储器使用量时间复杂度:最差、最好和平均时间复杂度稳定性。当序列中出现相等的数据时,经过排序后,前后顺序位置不变。插入排序(InsertionS
appletable
·
2016-02-29 22:21
Java排序算法总结
Java排序
算法总结之(一)——插入排序(直接插入排序、折半插入排序、希尔排序)
排序方法可以分为两种:内部排序和外部排序内部排序的方法很多,常用的大致可以分为:插入排序(直接插入排序、折半插入排序、希尔排序)交换排序(冒泡排序、快速排序)选择排序(简单选择排序、堆排序)归并排序基数排序评价排序算法的优劣一般从三个角度分析:空间复杂度:存储器使用量时间复杂度:最差、最好和平均时间复杂度稳定性。当序列中出现相等的数据时,经过排序后,前后顺序位置不变。插入排序(InsertionS
Appletable
·
2016-02-29 22:00
java
希尔排序
插入排序
排序算法
java排序
java排序
之插入排序,插入排序分为直接插入排序和希尔排序两种。
jinshiyill
·
2016-02-29 10:00
java排序
之插入排序(直接插入排序和希尔排序)
上面一片博文探讨了关于的java选择排序(冒泡排序和快速排序)本章将继续探讨
java排序
之插入排序,插入排序分为直接插入排序和希尔排序两种。
LMB520Q
·
2016-02-27 18:04
java
希尔排序
直接插入
Java排序
与查找
参考博客地址http://blog.csdn.net/pzhtpf/article/details/7560294
googlevsbing
·
2016-02-26 10:00
java排序
(选择排序+插入排序+冒泡排序+递归)
D:递归----------------------------代码演示:package day06;/** * 选择排序 * 每次找出一个最小的值,放到最前面 * @author yw.wang * */public class Test12 {public static void main(String[] args) { Test12 t12 = new Test12(); t1
小小5呀
·
2016-02-19 20:00
java排序
阅读更多publicstaticvoidsort(Listlist,finalStringmethod,finalStringsort){Comparatorcomparator=newComparator(){publicintcompare(Ea,Eb){intret=0;try{Methodm1=(a).getClass().getMethod(method);Methodm2=(b).ge
wangin1013
·
2016-02-17 18:00
java排序
中用到的两种比较方式:Comparable,Comparator
使用场景:使用ArrayList和Array时,经常需要对其进行排序。 这就要对象Object进行比较,实现方式有两种:接口Comparable,接口Comparator。 最后排序时,调用Collections.sort(),或者Arrays.sort()。共同点:1、升序、降序2、多键值排序区别和应用场合:Comparable:1、位于java.lang包下2、在类的内部实现比较函数,不需要新
qq_23617681
·
2016-02-03 23:00
java
排序
比较
comparable
comparator
java排序
算法(三):快排
要点快速排序是一种交换排序。快速排序由C.A.R.Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分:分割点左边都是比它小的数,右边都是比它大的数。然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。详细的图解往往比大堆的文字更有说明力,所以直接上图: 图-快速排序示例图中,演示了快速排序的处理过程:初始状态
ZuoAnYinXiang
·
2016-01-30 21:00
java排序
算法(二):直接选择排序
java排序
算法(二):直接选择排序一、基本概念首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置(注:要把最大最小的元素和起始的元素交换),然后,再从剩余未排序元素中继续寻找最小(大)元素
ZuoAnYinXiang
·
2016-01-28 16:00
java排序
算法(一):堆排序
Java排序
算法(三):堆排序 堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法,可以利用数组的特点快速定位指定索引的元素。
ZuoAnYinXiang
·
2016-01-28 11:00
Java排序
Collections排序
今天遇到一个问题,要根据对象的一个属性来排序:思路:通过Collections来实现,将对象的集合放入list中,然后根据API来排序:publicstaticvoidsort(Listlist,Comparatorcomparator){看看我们的最终效果: 代码如下:/**显示的时候需要根据概率大小来排序,那么在显示之前,添加到List结合之前就要先排好序-->先对jArray遍历一遍*/ L
ItJavawfc
·
2016-01-19 02:00
Java排序
Collections排
java排序
算法
对于一个排序算法来说,一般从3个方面来衡量算法的优劣。1、时间复杂度:主要是分析关键字的比较次数和记录的移动次数2、空间复杂度:分析排序算法需要多少辅助内存3、稳定性:若两个记录A和B的关键字值相等,但排序后A、B的先后次序保持不变,则称这种排序算法是稳定的;反之,就是不稳定的。排序算法大致可分为内部排序和外部排序。如果整个排序过程不需要借助于外部存储器(如磁盘),所有排序操作都在内存中完成,称为
chentian114
·
2016-01-07 15:00
java
算法
Java排序
之排序大综合
一、最近写了一些排序,于是和和大家分享一下:(默认都是从小到大排序)二、冒泡排序1、什么是冒泡排序:原理是临近的两个数比较大小,将较大的数往后移,这样遍历一趟数组以后,最大的数就排在的最后面(时间复杂的为O(N2))重复上面步骤N次。2、原理描述:data{44,77,55,33,66}第一次运行:data{44,55,33,66,77}第二次运行:data{44,33,55,66,77}。。。。
googlemeoften
·
2015-12-09 20:00
Java排序
算法
1.插入排序publicstaticvoidinsertSort(){ inta[]={45,5,2,58,1,51,23,526,185,52}; inttemp=0; for(inti=1;i=0&&temp=0&&tempa[j+1]){ temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } for(inti=0;i=temp){ high--; } a[lo
chaoyang805
·
2015-12-06 14:00
java
排序算法
Java排序
算法(十):桶式排序
Java排序
算法(十):桶式排序桶式排序不再是一种基于比较的排序方法,它是一种比较巧妙的排序方式,但这种排序方式需要待排序的序列满足以下两个特征:待排序列所有的值处于一个可枚举的范围之类;待排序列所在的这个可枚举的范围不应该太大
sushauai
·
2015-11-28 10:00
转自徐老师——
JAVA排序
汇总
package com.wepull.jbs.lesson4; import java.util.Random; /** * * 排序测试类 * * * * 排序算法的分类如下: * * 1.插入排序(直接插入排序、折半插入排序、希尔排序); * * 2.交换排序(冒泡泡排序、快速排序); * * 3.选择排序(直接选择排序、堆排序); * * 4.归并排序; * * 5.基数排序。 * * *
·
2015-11-13 07:28
Java排序
java排序
实现
Java实现几种常见排序方法 日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会
·
2015-11-13 07:56
Java排序
JAVA排序
(二) Comparator接口
接着说关于Comparator接口, java.util Interface Comparator<T>(该泛型指定的是被比较的类),使用该接口不需要在待比较类进行比较操作,即在不修改源码的情况下进行比较(如代码交付后), 与Comparable相比稍微复杂,但是还是很方便~~ 首先是待比较类,这里是一个记录温度与湿度的为了与上面做区分,在这里叫EnvironmentForms
·
2015-11-13 02:32
comparator
常用
Java排序
算法
常用
Java排序
算法 冒泡排序 、选择排序、快速排序 1 package com.javaee.corejava; 2 3 public class DataSort { 4
·
2015-11-12 23:39
Java排序
java排序
算法-归并排序
public class MergeSort { private static void mergeSortTest() { int[] in = { 2, 5, 3, 8, 6, 7, 1, 4, 0, 9 }; Utils.printArray("归并排序前:",in); int a[] = mergeSort(in); Utils.prin
·
2015-11-12 19:43
Java排序
java排序
算法-插入排序
public class InsertSortUtils { public static void main(String[] args) { insertSortTest(); shellSortTest(); } private static void insertSortTest() { int[] values = { 5, 2, 4, 1, 3 };
·
2015-11-12 19:43
Java排序
java排序
算法-交换排序
public class ExchangeSortUtils { // 冒泡 public static void bubbleSort(int[] array) { int length = array.length; int temp; boolean isSort; for (int i = 1; i < length; i++) { isS
·
2015-11-12 19:42
Java排序
上一页
4
5
6
7
8
9
10
11
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他