冒泡,快排代码+注释

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡,快排代码+注释相关的知识,希望对你有一定的参考价值。

冒泡:

package Sort;

public class BubbleSort {
    public static void main(String[] args) {
        int[] list = new int[]{12,14,3,24,1,33};
        int[] nums = bubbleSort(list);
        for(int i = 0;i< list.length;i++){
            System.out.println(nums[i]);
        }
    }
    
    public static int[] bubbleSort(int[] nums){
        int n = nums.length;
        for(int i= 0;i<n;i++){
            for(int j= i+1;j<n-i-1;j++){
                int temp = nums[i];
                nums[i] = nums[j];
                nums[j] = temp;
             }
        }
        return nums;
    }
}

快排:

package Sort;

public class QuickSort {

    public static void main(String[] args) {
        int[] unsortedList = new int[] { 49, 38, 65, 97, 76, 13, 27, 49 };
        quickSort(unsortedList, 0, 7);
        for (int i = 0; i < unsortedList.length; i++) {
            System.out.println(unsortedList[i]);
        }
    }

    public static void quickSort(int[] unsortedList, int low, int high) {
        if (low < high) {// 只有一个元素时,退出
            int k = partition(unsortedList, low, high);
            quickSort(unsortedList, low, k - 1);
            quickSort(unsortedList, k + 1, high);
        }
    }

    /**
     * nums进行一次以pivot为界限的分割
     * 
     * @param nums
     * @param low
     * @param high
     * @return
     */
    public static int partition(int[] nums, int low, int high) {
        // 定义pivot,存储pivot,定义low high
        if (low == high)
            return low;
        int pivot = nums[low];
        // low==high时,停止本趟partition
        while (low < high) {
            // 定义low,high,从high开始寻找比pivot小的数,放进坑里
            while (low < high && nums[high] >= pivot)
                high--;
            nums[low] = nums[high];
            // 从low开始寻找比pivot大的数,放进坑里
            while (low < high && nums[low] <= pivot)
                low++;
            nums[high] = nums[low];
        }
        nums[low] = pivot;
        return low;
    }

}

 

以上是关于冒泡,快排代码+注释的主要内容,如果未能解决你的问题,请参考以下文章

8种面试经典!排序详解--选择,插入,希尔,冒泡,堆排,3种快排,快排非递归,归并,归并非递归,计数(图+C语言代码+时间复杂度)

八大排序算法C语言过程图解+代码实现(插入,希尔,选择,堆排,冒泡,快排,归并,计数)

排序算法之冒泡和快排

排序算法的简单实现(冒泡和快排)

8种面试经典排序详解--选择,插入,希尔,冒泡,堆排,3种快排及非递归,归并及非递归,计数(图+C语言代码+时间复杂度)

8种面试经典排序详解--选择,插入,希尔,冒泡,堆排,3种快排及非递归,归并及非递归,计数(图+C语言代码+时间复杂度)