快排

作者: 第六象限 | 来源:发表于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+" ");
        }
    }
}

相关文章

  • 快排

    快排代码

  • 快排

  • 快排

    昨天晚上睡觉前兴起准备十分钟写出快排,结果纠结了两个小时愣是没有搞出来,很郁闷地睡觉去。今天地铁上跟LG又重新缕了...

  • 快排

    基本思想: 先从数列中取出一个数作为基准数。 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的...

  • 快排

  • 快排

    python实现 java实现:

  • 快排

    快速排序: 基本思想:1、先从数列中取出一个数作为基数。2、分区,将比此基数大的数放到它右边,小的数放到它左边。3...

  • 快排

    package sort;import java.util.Arrays;public class Quickso...

  • 快排

  • 快排

    一、(1)假如有一个数组 [8,10,2,3,6,1,5] ,我们拿出5作为参考,将小于5的数放到它的左边,大于5...

网友评论

      本文标题:快排

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