美文网首页
关于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中的排序

    冒泡排序 依次从第一个数开始依次比较相邻的两个数,将小的数字放在前面,大的数字放在后面,直到最后一个数,即第一趟完...

  • java中的冒泡排序、for循环的嵌套使用以及接口与抽象类的区别

    一、java冒泡排序。 java中的冒泡排序为一种简单的交换排序方法。其基本思路是从头开始扫描需要排序的元素,在扫...

  • Java比较器(对象排序)

    Java实现排序的方式 自然排序:java.lang.Comparable 定制排序:java.lang.Comp...

  • java排序方法资料

    java排序,效率高的是哪种排序方法 JAVA快速排序(高效) java中常用的几种排序算法 相关代码: /* *...

  • Java字典序排序

    Java中对List进行字典序排序

  • java中的排序--冒泡排序

    1.冒泡排序思想 冒泡排序就是比较两个相邻之间的数字,以升序排列为例。以数组int[] a = {11,3,12,...

  • java中的排序---选择排序

    1.思路 选择排序的思想是,每一趟在剩余数字选出一个最大(最小)的数,与前一个比较。把该数放到前面已经排好的队列中...

  • [Java]Java中的排序原来可以这么玩

    1. Java中的排序算法 讲Java中的集合排序前,我们来一起思考一下: 什么样的排序算法适合做为标准类库的算法...

  • Java comparable 和 comprator

    排序 在java 中我们对ArraryList 中的数据进行排序;通常可以使用Collections.sort()...

  • 面试知识点

    排序冒泡排序快速排序选择排序插入排序二路归并 查找二分查找 排序和查找的java实现 java语言Java字符串字...

网友评论

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

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