排法专题

随机伪快排法 求第k大数

分治法求第K大数 利用快排的思想求一个数列的第k大数, 高二开始写快排,但是一直没有非常清晰的理解,知道是分治, 但不理解细节。 今天借助写这个的机会,同时阅读了《编程珠玑》里的四种快排写法,才感觉更加清晰了。 这次写的快排才真正有了一个数,其左边的数都比他小, 右边的都比他大。 /***************************************************

有5个人ABCDE排队,排好后他们决定重新排队,每个人都不在原来的位置上,那么总共有多少种排法

n个人每个人都不站在原来的位置的方法数有:f(n)=n!(1/2!-1/3!+1/4!+..+(-1)^n/n!)此公式的推导过程要用到筛法公式,而且推导过程很复杂,除了竞赛高考肯定不会出现,对于n不大于4时可采用枚举法.一般只需记住n不大于5的情况即可f(2)=1,f(3)=2,f(4)=9,f(5)=44此外还有一个简单的公式f(n)={n!/e},{x}表示最接近x的整数,e为自然底