/**
         *将数组中的两个指定下标的元素交换位置          
         *@param arr 要交换元素的数组引用地址值
         *@param a 数组索引
         *@param b 数组索引
         */
         private static void swap(int[] arr,int a,int b){
                        int temp=arr[a];
                        arr[a]=arr[b];
                        arr[b]=temp;
         }

/**
         *冒泡排序
         *@param arr 将要排序的数组引用地址值
         *@param type true表示顺序排序,false表示逆序排序
         */
         public static void bubbleSort(int[] arr, boolean type){                
                 if(type){
                          for(int i=0;i<arr.length-1;i++){
                                for(int j=0;j<arr.length-1-i;j++){
                                                if(arr[j]>arr[j+1]){
                                                        swap(arr,j,j+1);
                                                }
                                }
                        }
                 }else{
                                for(int i=0;i<arr.length-1;i++){
                                        for(int j=0;j<arr.length-1-i;j++){
                                                if(arr[j]<arr[j+1]){
                                                        swap(arr,j,j+1);
                                                }
                                        }
                                }
                 }
         }

/**
         *选择排序
         *@param arr 将要排序的数组引用地址值
         *@param type true表示顺序排序,false表示逆序排序
         */
         public static void selectSort(int[] arr,boolean type){
                 if(type){
                         for(int i=0;i<arr.length-1;i++){
                                 for(int j=i;j<arr.length;j++){
                                         if(arr[i]>arr[j]){
                                                 swap(arr,i,j);
                                         }
                                 }
                         }
                 }else{
                         for(int i=0;i<arr.length-1;i++){
                                 for(int j=i;j<arr.length;j++){
                                         if(arr[i]<arr[j]){
                                                 swap(arr,i,j);
                                         }
                                 }
                         }
                 }
         }

/**
         *快速排序
         *@param arr 将要排序的数组引用地址值
         *@param l 数组索引的初始位置
         *@param r 数组的长度-1
         *@param type true表示顺序排序,false表示逆序排序
         */
         public static void  quicklySort(int[] arr,int l,int r,boolean type){
                         if(l<r){
                                int i=l,j=r,x=arr[i];
                                if(type){
                                         while(i<j){
                                                while(i<j&&arr[j]>x)
                                                        j--;
                                                if(i<j)
                                                        arr[i++]=arr[j];
                                                while(i<j&&arr[i]<x)
                                                        i++;
                                                if(i<j)
                                                        arr[j--]=arr[i];
                                        }
                                }else{
                                         while(i<j){
                                                while(i<j&&arr[j]<x)
                                                        j--;
                                                if(i<j)
                                                        arr[i++]=arr[j];
                                                while(i<j&&arr[i]>x)
                                                        i++;
                                                if(i<j)
                                                        arr[j--]=arr[i];
                                        }
                                }
                                arr[i]=x;
                                quicklySort(arr,l,r-1,type);
                                quicklySort(arr,l+1,r,type);
                        }
        }

AJPFX关于java数组排序的更多相关文章

  1. Java数组排序

    Java数组排序Arrays.sort,以及Comparator接口的用法 有的时候需要对数组里的element进行排序.当然可以自己编写合适的排序方法,但既然java包里有自带的Arrays.sor ...

  2. Java数组排序和查找

    Java 1.2 添加了自己的一套实用工具,可用来对数组或列表进行排列和搜索.这些工具都属于两个新类的"静态"方法.这两个类分别是用于排序和搜索数组的Arrays,以及用于排序和搜 ...

  3. JAVA 数组排序

    一.数组升序排序 实例: import java.util.Arrays; //导入数组处理 public class Test{ public static void main(String[] a ...

  4. JAVA冒泡排序/JAVA冒泡排序再找出给定数据中的最大值最小值/JAVA数组排序

    //数组中排序    int in[] = {1,6,5,8,9};    Arrays.sort(in);    for(int i=0;i<in.length;i++){       Sys ...

  5. java数组排序(冒泡、直排)反转

    package lianxi; public class maopao { public static void main(String[] args){ int[] i=new int[]{45,6 ...

  6. java数组排序,并将数组内的数据求和

    java数据编列并求和,江湖我狼哥,人狠话不多,直接上代码! import java.util.Arrays; public class Intarry { public static void ma ...

  7. Java数组排序基础算法,二维数组,排序时间计算,随机数产生

    import java.util.Arrays; //包含Arrays import java.util.Random; public class HelloWorld { public static ...

  8. [Java]数组排序-选择排序 冒泡排序 插入排序

    1 选择排序  原理:a 将数组中的每个元素,与第一个元素比较          如果这个元素小于第一个元素, 就将这个         两个元素交换.       b 每轮使用a的规则, 可以选择出 ...

  9. java数组排序(插入排序、冒泡排序、选择排序)与递归 代码示例

    import java.util.Scanner; public class OrderBy { public static void main(String[] args) { // Scanner ...

随机推荐

  1. JS日历控件 灵活设置: 精确的时分秒.

     在今年7月份时候 写了一篇关于 "JS日历控件" 的文章 , 当时仅仅支持 年月日 的日历控件,如今优化例如以下:      1. 在原基础上 支持 yyyy-mm-dd 的年月 ...

  2. 嵌入式开发之davinci--- 8148 中dsp在dsp_drv.c中的processdata()加算法出现下边缘条纹问题

    (1)问题原因 dsp在alglink_priv.c中做灰度处理发现,下面出现条纹,后面发现是cache 缓存没及时写进内存问题 (2)解决办法 for(frameId=0; frameId<f ...

  3. Android不刷机下的app2sd方法(dex cache占空间解决篇)

    抱着5年的HTC G7这个古董,一直没有想法去换换. 近期微信.支付宝什么的apk应用都開始走程序巨型化,一次性就来个50MB的空间占用,让还是Android 2.2的手机怎样吃的消? 看看100多M ...

  4. [IT学习]Greatwall

    1.evilcos 优雅 过城墙 如果没这个开源的关键解决方案怎么办呢?我给你一个永恒思路,技术贴请看: http://www.ibm.com/developerworks/cn/linux/l-cn ...

  5. test_action

    [TOP] 为什么百度校招数据挖掘工程师的笔试题目是跟数据挖掘关系不大? - 研究生生活交流 - 王道论坛,专注于计算机考研的点点滴滴! http://www.cskaoyan.com/thread- ...

  6. vmware中鼠标在部分区域不能使用

    https://blog.csdn.net/dreamengsoul/article/details/80439278 方法1:重装VMware tools; 方法2:使用增强型键盘鼠标: 方法3:检 ...

  7. winform 无法修改控件的location

    dock and location 是因为设置了控件的Dock,导致无法修改

  8. 【HAOI2007】反素数

    [题目链接] 点击打开链接 [算法] 稍加分析可知,问题等价于“求1到n中,因子个数最多的数,若有多个,求最小的” 那么我们该怎么求这个数呢? 约数个数定理 : x = p1^a1p2^a2p3^a3 ...

  9. 转3xian之所在 (一位ACM大牛的博文)

    3xian的经历和见解...我深思... 最后一天,漫天飘起了雪花,假装欢送我离去. 这次WF之战不太顺利,早期的C题大概花了1秒钟构思,然而由于输出格式多了一个空格直到两个半小时才逃脱Wrong A ...

  10. Oracle:ORA-12154: TNS:could not resolve the connect identifier specified

    ORA-12154: TNS: 无法解析指定的连接标识符 注册表:regedit 安装oracle后用Net Manager 配置好服务名称之后,测试成功,可是PL/SQL无法连接 http://we ...