什么是算法


算法是计算机解决问题的步骤。是以人类可以理解的方式描述的,用于编写程序之前。程序是计算机可以理解的语言。同一个算法,不同的编程语言,程序就会不同。不同写程序的人,编程也会不同。

 

问题:对n个数字进行排序

算法设计

  • 方法1:全排列算法。
    • 生成n个数的数列(不和前面重复)
    • 如果生成的数列从小到大排序,将其输出,否回1
  • 方法2:选择排序
    • 找n个中最小一个,放最左边
    • 找n-1中找最小一个,放第2个位置
  • 方法3:......

算法的选择:运行时间,空间资源...

示例

方法1:运气好,很快出现正确结果,运气不好,最后一个出现正确结果。计算时间是

\[n!=n(n-1)(n-2)\cdots3\cdot2\cdot1\]

方法2:计算时间

\[n+(n-1)+(n-2)+\cdots3+2+1=\frac{n(n-1)}{2}\leqslant n^{2}\]

方法1大于10^20年,宇宙大爆炸到现在才10^11年。方法2是2ns。算法对计算方法的影响很大。

 

 

如何计算运行时间?

使用“步数”来描述运行时间,“1步”就是计算的基本单位。

运行时间的表示方法

O这个符号的意思是“忽略重要项以外的内容”,读音同order。

\[O(n^2)\]算法的运行时间最长也就是n^2的常数倍


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM