快速排序

    xiaoxiao2023-03-24  3

    排序类:

    package quick; public class QuickSort { private int[] list; public QuickSort(int[] list) { this.list = list; } /** * 快速排序,当左右索引不满足交换条件时,应该不发生交换 * @param left * @param right */ public void sort(int left,int right) { int low = left; int high = right; int key = list[left]; while(low < high) { while(low < high && list[high] >= key) { high --; } list[low] = list[high]; //主要处理不满足交换条件 while(low < high && list[low] <= key) { low ++; } list[high] = list[low]; //主要处理不满足交换条件 list[low] = key; //主要处理不满足交换条件 sort(left,low - 1); //递归左边 sort(low + 1,right); //递归右边 } } public void print() { for(int i=0;i<list.length;i++) { System.out.print(" " +list[i]); } } }

    测试类:

    package quick; public class MainClass { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int[] list = {-9,8,1,2,5,4,7,6,3,9}; QuickSort qs = new QuickSort(list); qs.sort( 0, list.length-1); qs.print(); } }

    转载请注明原文地址: https://ju.6miu.com/read-1201196.html
    最新回复(0)