美文网首页
关于JAVA中的排序

关于JAVA中的排序

作者: 残风碎雨 | 来源:发表于2018-04-22 20:42 被阅读0次

    冒泡排序

      依次从第一个数开始依次比较相邻的两个数,将小的数字放在前面,大的数字放在后面,直到最后一个数,即第一趟完成,重复此步骤直至全部排序完成。

    public class BubbleSort {
    
        public static void main(String[] args) {
            int[] arr= {12,23,15,65,43};
        bubbleSort(arr);
        }
         private static void bubbleSort(int[] arr) {
            for(int i=1;i<arr.length;i++) {
                for(int j=0;j<arr.length-i;j++) {
                    if (arr[j]>arr[j+1]) {
                        int temp=arr[j];
                        arr[j]=arr[j+1];
                        arr[j+1]=temp;
                        }
                    
                }
            }
        showArray(arr);
        }
    
        private static void showArray(int[] arr) {
            for(int i:arr) {
                System.out.println(i);
            }
            
        }
         
    }
    

    直接选择排序

      第一趟从数组中找一个最大的数和数组最后一个数交换;第二趟再从数组中找第二大的数(即除了最后一位最大的数)和数组倒数第二个数交换;第三趟再从数组中找除了最后两个数最大的数与倒数第三个数交换。。。直到排序完成。

    
    public class SelectSort {
    
        public static void main(String[] args) {
            int[] arr= {75,43,66,29,41};
            SelectSort sorter=new SelectSort();
            sorter.sort(arr);
        }
        private void sort(int[] arr) {
        int index;
            for(int i=1;i<arr.length;i++) {
                index=0;
                for(int j=1;j<=arr.length-i;j++) {
                    if(arr[j]>arr[index]) {
                    index=j;
                        
                }
            }   
            int temp=arr[arr.length-i];
            arr[arr.length-i]=arr[index];
            arr[index]=temp;
            
        }   
            showArray(arr);
        }
        private void showArray(int[] arr) {
           for(int i:arr) {
            System.out.println(i);
           }
        }
    
    }
    

    快速排序

      选定数组中第一个数为基准值,然后定义一个arr[i]从第一个数向右找到比基准值小的数a,再定义一个arr[j]从最后一个数向左找比基准值大的数b,然后a和b交换,然后继续上步骤直至a=b,然后将这个位置的数与基准值交换,第一趟完成。反复直至排序完毕。

    public class QuickSort {  
        public static void main(String[] args) {  
            int[] arr = {12,23,15,65,43,55,42};  
            quickSort(arr,0,arr.length-1);  
        }  
      
      private static void quickSort(int[] arr, int low, int high) {  
            if( low > high) {  
                return;  
            }  
            int i = low;  
            int j = high;  
            int key = arr[ low ];  
            while(i<j) {  
               while(i<j && arr[j] > key){  
                    j--;  
                }  
                 while( i<j && arr[i] <= key) {  
                    i++;  
                }  
                if(i<j) {  
                    int temp = arr[i];  
                    arr[i] = arr[j];  
                    arr[j] = temp;  
                }  
            }  
            int temp = arr[i];  
            arr[i] = arr[low];  
            arr[low] = temp;  
            quickSort(arr, low, i-1 );  
            quickSort(arr, i+1, high);  
            showArray(arr);  
      }
    
        private static void showArray(int[] arr) {
            for(int i:arr) {
                 System.out.println(i);
        
           } 
      } 
    }
    

    相关文章

      网友评论

          本文标题:关于JAVA中的排序

          本文链接:https://www.haomeiwen.com/subject/qagclftx.html