为您找到搜索结果:908个
java8 List集合的排序,求和,取最大值,按照条件过滤
public class Java8Test{ public static void main(String[]args){ Personp1= new Person("麻子", 31); Personp2= new Person("李四", 20); Personp3= new Person("王五", 26); List<Person>personList= new&nbs...
Java Comparator字符排序(数字、字母、中文混合排序)
这是修正前的排序效果: 这是修正后的排序效果: 完整示例:以下是排序的部份代码(非全部代码:拼音首字母算法不在其中)import java.util.Arrays; import java.util.Comparator; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Demo { public static void main(String[] args) { // TODO Auto-ge...
java实现八种排序算法并测试速度
速度测试:(1)随机数范围:0-100希尔排序:=>Timeis38600基数排序:=>Timeis53300快速排序:=>Timeis46500堆 排序:=>Timeis131800选择排序:=>Timeis139900归并排序:=>Timeis94700插入排序:=>Timeis69600冒泡排序:=>Timeis189700(2)随机数范围:0-1000希尔排序:=>Timeis515900基数排序:=>Timeis339400快速排序:=>Timeis564100堆 排序:=>Timeis498800选择排序:=>Timeis3258300归并排序:=>Timeis1012300插入排序:=>Timeis2505400冒泡排序:=>Timeis5783700(3)随机数范围:0-10000希尔排序:=>Timeis4099600基数排序:=>Timeis3240700快速排序:=>Timeis2490600堆 排序:=>Timei...
ArrayList 排序方法的性能对比
20000=>ZXP二分法getSeriesMinSort2(list)Timeis6700020000=>循环getSeriesMinSortFor(list)Timeis280020020000=>TBBgetSeriesMinNoSort(list)Timeis581280020000=>ZXP二分法getSeriesMinSort2(list)Timeis7020020000=>循环getSeriesMinSortFor(list)Timeis285520020000=>TBBgetSeriesMinNoSort(list)Timeis583210020000=>ZXP二分法getSeriesMinSort2(list)Timeis7440020000=>循环getSeriesMinSortFor(list)Timeis290540020000=>TBBgetSeriesMinNoSort(list)Timeis612160020000=>ZXP二分法getSeriesMinSort2(list)Timeis64600...
JAVA8 List排序
@Data@AllArgsConstructor@NoArgsConstructorpublicclassHuman{privateStringname;privateintage;}下面的操作都基于这个类来进行操作。这里面使用了Lombok类库,它用注解的方式实现了基本的get和set等方法,让代码看起来更加的优雅。在Java8之前,对集合排序只能创建一个匿名内部类newComparator<Human>(){@Overridepublicintcompare(Humanh1,Humanh2){returnh1.getName().compareTo(h2.getName());}}下面是简单的对Humans进行排序(按名称正序)@TestpublicvoidtestSortByName_with_plain_java()throwsException{ArrayList<Human>humans=Lists.newArrayList(newHuman("tomy",22),newHuman("li",25));Collections.sort(humans,...
Java List集合冒泡法排序的两种实现
冒泡排序(BubbleSort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。方法一:1.如果集合的值为int类型Java代码 public class TT { public static void main(String[] args) {&n...
MySQL按照汉字的拼音排序
按照汉字的拼音排序,用的比较多是在人名的排序中,按照姓氏的拼音字母,从A到Z排序; 如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了)。直接在查询语句后面添加orderbynameasc;查询结果按照姓氏的升序排序; 如果存储姓名的字段采用的是 utf8字符集,需要在排序的时候对字段进行转码;对于的代码是 orderbyconvert(nameusinggbk)asc;同样,查询的结果也是按照姓氏的升序排序;...
三个数从小到大排序
描述现在要写一个程序,实现给三个数排序的功能 输入输入三个正整数输出给输入的三个正整数排序样例输入20733样例输出72033#include<iostream>usingnamespacestd;intmain(){intarr[3];for(inti=0;i<3;i++)cin>>arr[i];inttemp;for(inti=0;i<3;i++){for(intj=0;j<2-i;j++){if(arr[j]>arr[j+1]){temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}for(intk=0;k<3;k++)cout<<arr[k]<<"";return0;} ...
一种排序
描述现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大);1.按照编号从小到大排序2.对于编号相等的长方形,按照长方形的长排序;3.如果编号和长都相同,按照长方形的宽排序;4.如果编号、长、宽都相同,就只保留一个长方形用于排序,删除多余的长方形;最后排好序按照指定格式显示所有的长方形;输入第一行有一个整数0<n<10000,表示接下来有n组测试数据;每一组第一行有一个整数0<m<1000,表示有m个长方形;接下来的m行,每一行有三个数,第一个数表示长方形的编号,第二个和第三个数值大的表示长,数值小的表示宽,相等说明这是一个正方形(数据约定长宽与编号都小于10000);输出顺序输出每组数据的所有符合条件的长方形的编号长宽样例输入18111111112121122211212221样例输出111121122211221 #include<iostream>#include<algorithm>usingnamespacest...
ASCII码排序
描述输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。输入第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。输出对于每组输入数据,输出一行,字符中间用一个空格分开。样例输入3qweasdzxc样例输出eqwadscxz #include<iostream>#include<string>usingnamespacestd;intmain(){chararr[3];charch;inttest;cin>>test;while(test--){for(inti=0;i<3;i++)cin>>arr[i];for(inti=0;i<3;i++){for(intj=0;j<2-i;j++){if(arr[j]>arr[j+1]){ch=arr[j];arr[j]=arr[j+1];arr[j+1]=ch;}}}for(inti=0;i<3;i++){cout<<arr[i]<<"";}}c...
排序和搜索
#coding:utf-8defbubble_sort(alist):"""冒泡排序"""nums=len(alist)-1#要执行的次数whilenums:foriinrange(nums):ifalist[i]>alist[i+1]:alist[i],alist[i+1]=alist[i+1],alist[i]nums-=1returnalistif__name__=="__main__":b=bubble_sort([1,3,7,2,8,9,4,5,0,6])print(b)另一种方法#coding:utf-8defbubble_sort(alist):"""冒泡排序"""nums=len(alist)count=0#记录是否有进行数据交换forjinrange(nums-1):#规定要执行的次数foriinrange(0,nums-1-j):#规定每次执行比较的个数ifalist[i]>alist[i+1]:alist[i],alist[i+1]=alist[i+1],alist[i]count+=1ifcount==0:#说明该序列是有序的序列,不必进行后面的比较...
json对象按时间排序
//正序vardata={"rows":[{"name":"张三","time":"2011/4/10:00:00",},{"name":"李四","time":"2015/5/612:30:00",},{"name":"王五","time":"2012/10/122:10:00",},{"name":"赵六","time":"2011/9/122:10:00",}]};varrows=data.rows;rows.sort(function(a,b){returnDate.parse(a.time)-Date.parse(b.time);//时间正序});for(vari=0,l=rows.length;i<l;i++){console.log(rows[i].name+"|"+rows[i].time);}//倒序vardata={"rows":[{"name":"张三","time":"2011/4/10:00:00",},{"name":"李四","time":"2015/5/612:30:00",},{"name":"王五","time":"2012/10/122:10...
Java实现常见基础排序算法
1.直接插入排序在插入第i个记录的时,R1,R2...已经排好序,这时将关键字R依次与R1...比较,从而找到应该插入的位置,插入位置以及其后的记录依次往后移动。时间复杂度O(n^2) 空间复杂度O(1) 2.冒泡排序首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则交换这两个记录的值,然后比较第二个和第三个记录的关键字,以此类推,知道第n-1个记录和第n个记录比较过为止。上述为第一趟冒泡排序,其结果是关键字最大的记录被交换到第n个记录的位置,然后进行第二趟冒泡排序,对前n-1个记录进行同样的操作,其结果关键字次大的记录被交换到第n-1个记录的位置,最多进行n-1趟,所有的记录有序排列。时间复杂度O(n^2) 空间复杂度O(1)packagealgorithm;/***@time2019年5月19日下午12:20:59*@authorlll*@describe排序*/publicclassBubbleSort{/***@time2019年5月19日下午1:05:07*@...
STL排序函数
Qsort,Sort,Stable_sort,Partial_sort,List::sort 参考...
排序算法总结之希尔排序
一,希尔排序算法介绍①希尔排序又称缩小增量排序,它本质上是一个插入排序算法。为什么呢?因为,对于插入排序而言,插入排序是将当前待排序的元素与前面所有的元素比较,而希尔排序是将当前元素与前面增量位置上的元素进行比较,然后,再将该元素插入到合适位置。当一趟希尔排序完成后,处于增量位置上的元素是有序的。②希尔排序算法的效率依赖于增量的选取假设增量序列为h(1),h(2).....h(k),其中h(1)必须为1,且h(1)<h(2)<...h(k)。第一趟排序时在增量为h(k)的各个元素上进行比较;第二趟排序在增量为h(k-1)的各个元素上进行比较;..........最后一趟在增量h(1)上进行比较。由此可以看出,每进行一趟排序,增量是一个不断减少的过程,因此称之为缩小增量。当增量减少到h(1)=1时,这里完全就是插入排序了,而在此时,整个元素经过前面的k-1趟排序后,已经变得基本有序了,而我们知道,对于插入排序而言,当待排序的数组基本有序时,插入排序的效率是非常高的。因此,希尔排序就是利用“增量”技巧将插入排序的平均时间复杂度O(N^2)降低为亚二次方。...