重温经典之排序 java实现

重新写一遍,都忘记了!

No.1  快排

 1 public class FastSort {
 2     public static void main(String[] args)throws Exception{
 3         int[] a = {10, 1, 2, 3, 7, 3, 8, 5, 6, 4};
 4         FastSort b1 = new FastSort();
 5         b1.sort(a,0,a.length-1);
 6     }
 7     void sort(int[] a ,int l ,int r)throws Exception{
 8         int i,j,t,temp;
 9         i = l ;
10         j = r ;
11         temp = a[l];
12         if(l>r){
13             return;
14         }
15         while (i!=j){
16             while(i<j && a[j]>=temp){
17                 j--;
18             }
19             while(i<j && a[i]<=temp){
20                 i++;
21             }
22             if(i<j){
23                 t = a[i];
24                 a[i] = a[j];
25                 a[j] = t ;
26             }
27         }
28         a[l] = a[i];
29         a[i] = temp;
30         System.out.print("/");
31         for(int h=0;h<a.length;h++){
32             System.out.print(a[h]+" ");
33         }
34         sort(a , l , i-1);
35         sort(a , i+1 , r);
36     }
37 }

No.2 冒泡排序

 1 public class Bubblesort {
 2     public static void main(String []args){
 3         int []a = {3,5,72,3,8,90};
 4         sort(a);
 5     }
 6     public static void sort(int []a){
 7         int temp ;
 8         for(int i = a.length -1 ; i > 0 ; i--){
 9             for(int j = 0 ; j < i ; j++){
10                 if(a[j+1] < a[j]){
11                     temp = a[j+1];
12                     a[j+1] = a[j];
13                     a[j] = temp;
14                 }
15             }
16         }
17         for(int k = 0 ;k<a.length;k++){
18             System.out.print(a[k]+",");
19         }
20     }
21 }

No.3 插入排序

 1 public class Insertsort {
 2     public static void main(String[] args){
 3         int []a = {3,4,4,2,5,4,6,3,2};
 4         sort(a);
 5     }
 6     static void sort(int[] a){
 7         for(int i = 1 ; i < a.length ; i++){
 8             for(int j = i ; j > 0 ; j--){
 9                 if(a[j]<a[j-1]){
10                     int temp = a[j];
11                     a[j] = a[j-1];
12                     a[j-1] = temp;
13                 }
14             }
15         }
16         for(int k = 0;k<a.length;k++)
17             System.out.print(a[k]+" ");
18     }
19 }
时间: 2024-08-08 09:38:42

重温经典之排序 java实现的相关文章

算法基础——经典八大排序算法的Java及Python实现

概述 八大排序算法不用多说了,程序员算法基础必须要掌握的,现在总结一下加深记忆.下图是这八大排序算法的分类.名称.时间空间复杂度,以及稳定性. 代码 以下是经典八大排序算法的Java及Python代码,都是基于经典算法书籍<算法导论>里的伪代码实现的,我在关键语句部分附上了注释. 按照上图中的顺序分别介绍八大排序算法的实现(升序),前面是Java,后面是Python.Java的排序函数写在了一个类里,Python的排序函数则直接写出来了. 直接插入排序 public class InsertS

希尔排序及希尔排序java代码

原文链接:http://www.orlion.ga/193/ 由上图可看到希尔排序先约定一个间隔(图中是4),然后对0.4.8这个三个位置的数据进行插入排序,然后向右移一位对位置1.5.9进行插入排序按照此规律直到全部参与了排序.然后将间隔约定为4-1=3,然后继续进行如上的排序方法.具体过程如下: 9 1 2 3 0 4 5 7 6 8 Setp 1 经过间隔为4排序后变成 : 0 1 2 3 6 4 5 7 9 8 Setp 2 经过间隔为3排序后变成 : 0 1 2 3 6 4 5 7 9

算法练习5---快速排序Java版

基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列. 例如 3 1 5 2 7 9 3 0 首先以3为基准数,基准数的意思就是以这个数为参考,其他数和它做比较,现在例如有两个人,分别从左边和右边开始找,右边的人要找到比基准数3小的数,左边的人找比基准数3大的数,找到以后进行交换,右边的人先开始找,例如上面的数组,右边的人从0开始找,0比3小

1024. 排序——java

1024. 排序 Input Format 第一行:正整数n,表示需要排序的数字的个数: 第二行:n个正整数,代表需要排序的数字. Output Format 输出共一行,n个正整数,为从小到大排序后的结果. Sample Input 3 2 1 3 Sample Output 1 2 3 Limits n<10000,时间限制1000ms,内存限制30000kb. 面对这道题,使用Java的我呵呵一笑,优越感来了... 不解释,代码如下: import java.util.Arrays; im

冒泡排序与简单选择排序——Java实现

1.冒泡排序 1)原理说明:重复遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成. 2)代码实现: package com.test.sort; public class BubbleSort { public static void sort(int[] data) { for (int i = 0; i < data.length; i++) { for (int j = data.length

经典的排序算法

这些天复习了排序这个模块,排序算法在程序员的日常工作中是必不可少的,有时候我们不知不觉就用到了排序,这是因为高级语言系统已经比较完美的封装和优化了排序算法,并且在笔试,面试等方面我们都能见到它的身影.下面结合那本大三的教材:严版的<数据结构>,来说一说这几个经典的排序算法,如果有不对的欢迎指正! 首先我们还是先说基础概念(按书上说的),万变离不开概念,没有概念没有规矩,那可不行. 1:内部排序和外部排序(我们重点说内部排序(因为我们最常用到)) 内排序:在排序的时间数据对象全部存放在内存的排序

ElasticSearch中设置排序Java

有用的链接:http://stackoverflow.com/questions/12215380/sorting-on-several-fields-in-elasticsearch 有的时候,需要自己设定排序,java的一个接口如下: String time1 = ConstValue.GetCurrentDate(); SortBuilder sortBuilder = SortBuilders.fieldSort("tfp_save_time") .order(SortOrde

数组求最大最小值和排序java实现

public class ArrayDemo05 { public static void main(String[] args) {     int list01[]={67,89,87,69,90,100,75,90};     int max;     int min;     max=min=list01[0];     for(int i=0;i<list01.length;i++){         if (list01[i]>max)             max=list01

【80/90年代共同记忆!】用容器技术重温经典,复活坦克大战!

3年前,最后一批90后高中生经历高考,撤出高中校园,从制霸高中校园到制霸大学校园,一代人的热血高校即将落幕,而80后逐渐沦入中年油腻的序列,不禁我想问一下朋友们,谁可以致一下我们的青春?此时也许你正走在路上,啃着加了一个蛋的煎饼,急匆匆的前往办公楼:亦或是大企业当中的一颗螺钉,没事儿松一把,有事拧一把.然而,我们有多长时间没有联系过曾经的伙伴?你现在是否还在怀念那个没有电脑的时光?几个小伙伴,在家里窝在被窝中,盯着小电视,手里拿着红白机小手柄,夜夜奋战.曾经的超级玛丽.魂斗罗.坦克大战,现在的你