kit*_*ttu 1 java sorting algorithm
我在哪里可以学习编程算法(java等),因为当我搜索排列,紊乱,排序等程序时,我总能找到数学算法.
示例:计算紊乱
由此,得出以下关系:
!n = (n - 1) (!(n-1) + !(n-2)).\,
where !n, known as the subfactorial, represents the number of derangements, with the starting values !0 = 1 and !1 = 0.
Notice that this same recurrence formula also works for factorials with different starting values. That is 0! = 1, 1! = 1 and
n! = (n - 1) ((n-1)! + (n-2)!)\,
which is helpful in proving the limit relationship with e below.
Also, the following formulae are known:[4]
!n = n! \sum_{i=0}^n \frac{(-1)^i}{i!},
!n = \left\lfloor\frac{n!}{e}+\frac{1}{2}\right\rfloor , \quad n\geq 1,
!n = \left[ \frac{n!}{e} \right] , \quad n\geq 1
Run Code Online (Sandbox Code Playgroud)
另外我发现的另一个例子是当我在java中查找排序时,我看到O(n log n)或O(log n)术语,我根本不理解.我不擅长数学,但同时我对编程非常感兴趣.请帮我找一本书或一个网站,以了解编程语言所需的排序算法
算法是关于数学的.他们与语言无关.只要您了解其语法,即基本数据类型,运算符,决策等,您就可以使用任何语言实现算法.许多语言都提供了实现已知和/或有用算法或功能的库(例如用于排序,加密等). )
这就是为什么搜索"java算法"是一个糟糕的搜索字符串.你应该选择"java编程基础"
如果你想了解算法的背后(美),我强烈推荐阅读这本伟大的书:"编程珍珠"(第2版).第一版是在1983年写的,有趣的是理解为什么作者决定在 17年后写第二版.
您还可以查看在线讲座,例如麻省理工学院的在线讲座.
关于问题的O(log(n))部分,这是表示算法的计算复杂性的表示法(当您想要理解算法可以期望的性能时,或者如果您想要传达性能时,这一点很重要你自己的算法).
对于Java,您可以从Oracle的教程开始.
| 归档时间: |
|
| 查看次数: |
436 次 |
| 最近记录: |