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);
                            }
            }

  • 相关阅读:
    linux系列之-—03 压缩和解压缩命令
    Atlassian Confluence安装
    常见ODBC及OLEDB连接串的写法
    windows 怎么验证域名是否开启了 https
    Jenkins基础篇 系列之-—05 集成JIRA
    SVN系列之—-SVN版本回滚的办法
    JMeter 系列之—-02 创建数据库测试计划
    golang web框架 beego 学习 (一) 环境搭建
    补充 3:Golang 一些特性
    补充 1: panic 、recover、 defer
  • 原文地址:https://www.cnblogs.com/AJPFX/p/10855562.html
Copyright © 2011-2022 走看看