zoukankan      html  css  js  c++  java
  • AJPFX关于java数组排序

       /**
             *将数组中的两个指定下标的元素交换位置          
             *@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);
                            }
            }

  • 相关阅读:
    java连接oracle
    用js实现登录的简单验证
    合并链表,按主键升序
    Jquery中.ajax和.post详解
    简洁的Jquery弹出窗插件
    服务端缓存页面及IIS缓存设置
    C#托管代码、非托管代码及回收机制
    页面滑动底部自动加载下一页信息
    EF各版本增删查改及执行Sql语句
    Node.Js and Mongoose
  • 原文地址:https://www.cnblogs.com/AJPFX/p/10855562.html
Copyright © 2011-2022 走看看