快速排序算法

xiaoxiao2021-02-28  50

package com.cn.sort; public class FastSort { public static void main(String[] args) { int arr[] = {45,89,56,23,10,20,45}; sort(arr, 0, arr.length-1); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]+" "); } } public static void sort(int arr[],int low, int high) { if (low > high) { return; } int i = low; int j = high; int tmp = arr[low];//选取的比较基准值 while (i < j) { while (i < j && tmp <= arr[j]) { j--; } if (i < j) { arr[i] = arr[j]; } while (i < j && tmp >= arr[i]) { i++; } if (i < j) { arr[j] = arr[i]; } } arr[i] = tmp;//找到中间位置 sort(arr, low, i-1);//对小于中间值的那个区间进行排序 sort(arr, i+1, high);//对大于中间值的那个区间进行排序 } }

运行后的结果:

转载请注明原文地址: https://www.6miu.com/read-2612658.html

最新回复(0)