算法第二章作业
1,寻找第K小的数,首先建立一个数组,将若干个数存入数组,然后利用快速选择排序,以第一个数作为基准,最终得到排序后的结果是基准左边的数都比他小,基准右边的数都比他大,这样子基准的下标+1就是表示他是第几小的数,下标+1是因为数组从0开始计数,然后用基准的下标与K进行比较,若果比k小,就在比基准大的右边继续找,如果比k大,就在比基准小的左边继续找。同时在右边找要注意,实在右边找第k-(n+1)小的数。然后持续递归。
2,时间复杂度:基准每次为中位数,最好O(n),基准每次为最值,最坏O(n²)。
3,对于分治法,我们能通过这种方式更好的解决一些复杂的算法问题,将一些问题缩小成一个一个部分进行求解
                    
                
                
            
        
浙公网安备 33010602011771号