快排

作者: 第六象限 | 来源:发表于2018-01-10 21:03 被阅读0次

    python实现

    def quicksort(array):
        if len(array)<2:
            return array
        else:
            pivot=array[0]
            less=[i for i in array[1:] if i<=pivot]
            greater=[i for i in array[1:] if i>pivot]
            return quicksort(less)+[pivot]+quicksort(greater)
    
    print(quicksort([5,3,24,6,7,1,3,9,2]))
    
    

    java实现:

    package sort;
    
    public class QuickSortTest {
    
        static class QuickSort {
            public int data[];
            private int partition(int array[], int low, int high) {
                int key = array[low];
                while (low < high) {
                    while (low < high && array[high] >= key)
                        high--;
                    array[low] = array[high];
                    while (low < high && array[low] <= key)
                        low++;
                    array[high] = array[low];
                }
                array[low] = key;
                return low;
            }
    
            public int[] sort(int low, int high) {
                if (low < high) {
                    int mid = partition(data, low, high);
                    sort(low, mid- 1);
                    sort(mid + 1, high);
                }
                return data;
            }
        }
    
        public static void main(String[] args) {
            int data[] = { 10, 5, 3, 11, 7, 2, 8 };
            QuickSort qs = new QuickSort();
            qs.data = data;
            qs.sort(0, data.length - 1);
            for(int n:data){
                System.out.print(n+" ");
            }
        }
    }

    相关文章

      网友评论

          本文标题:快排

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