冒泡,快排代码+注释
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语言代码+时间复杂度)