美文网首页
找到第k小的数(快速排序思想实现)

找到第k小的数(快速排序思想实现)

作者: Wide_Star | 来源:发表于2018-05-24 16:02 被阅读0次

开始



public class FindKth {
    public int findKth(int[] arr, int left, int right, int k) {
        int i;
        if (left > right) {
            return -1;
        } else {
            i=partion(arr, left, right);
            if (i-left+1 == k) {
                return arr[i];
            } else if (i-left+1 > k) {
                return findKth(arr, left, i - 1, k);
            } else {
                return findKth(arr, i + 1, right, k-i-1);
            }
        }
    }
    public int partion(int[] arr, int left, int right) {
        int t;
        int i = left, j = right;
        int tmp = arr[left];
        while (i != j) {
            while (arr[j] >= tmp && i < j) {
                j--;
            }
            while (arr[i] <= tmp && i < j) {
                i++;
            }
            if (i < j) {
                t = arr[i];
                arr[i] = arr[j];
                arr[j] = t;
            }
        }
        arr[left]=arr[i];
        arr[i]=tmp;
        return i;
    }
    public static void main(String[] args) {
        int[] arr = { 2, 1, 55, 62, 13, 41, 22, 8, 77, 82, 16, 33 };
        System.out.println(new FindKth().findKth(arr, 0, arr.length - 1, 3));
    }
}

结束

相关文章

  • 算法-快速排序

    快速排序 变形 : 快速排序(剪枝法)-找出数组中第k小的数 采用快速排序的思想来实现。选一个数 baseValu...

  • 找到第k小的数(快速排序思想实现)

    开始 结束

  • 数组小题目

    如何找到无序数组中第K大的数?利用快速排序的思想,每次找到某节点的最终位置来缩小检索数组的大小

  • 力扣 215 数组中的第K个最大元素

    题意:给定一个数组,找到第k个最大的元素 思路:利用快速排序,快速定位第k大的元素,具体可看代码注释 思想:快速排...

  • Leetcode.215.Kth Largest Element

    题目 给定一个数组, 输出第k大的数. 思路 进行从大到小排序, 第k-1即为第k大的数. 总结 掌握快速排序.

  • ologn排序算法后的两个问题

    求一个数组的逆序数对的个数(归并排序) 求出nums里第k小的数(快速排序)

  • java快速学习排序---快排算法

    一、快速排序是(挖坑法)是挖坑填数 + 分治来实现。 1.快速排序的基本思想: 2.快速排序的图示: 3.快速排序的算法

  • 215. Kth Largest Element in an A

    找到未排序数组中第K大的数,使用大根堆和小根堆的区别

  • 排序

    冒泡排序,插入排序,快速排序 1.2编程实现O(n)时间复杂度内找到一组数据的第K大元素 2.1有序数组的二分查找...

  • 快排分区函数

    快排分区函数 思路 并未真正的实现快速排序算法,只是找到了选中的数在数组中的顺序位置。 基本思想 选择一个数,把数...

网友评论

      本文标题:找到第k小的数(快速排序思想实现)

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