初识算法
文章平均质量分 68
_hailo_
这个作者很懒,什么都没留下…
展开
-
排序算法:简单选择排序,堆排序,直接插入排序,二分法插入排序,冒泡排序,快速排序,归并排序
写在前面的声明:本篇博客主要是为了自己以后作回顾之用,所以算法思想上的解释并不细致,代码应该还能算上比较易懂,做了比较多的注释,尤其是比较复杂的堆排序、快速排序、归并排序。每一个排序算法的代码都是本人实验过的,所以应该是可行的。稳定的排序算法直接插入排序,二分法插入排序,冒泡排序,归并排序排序算法的时间复杂度堆排序,快速排序,归并排序平均时间复杂度为O(nlogn),算法中默认对数...原创 2018-07-24 16:58:26 · 974 阅读 · 0 评论 -
算法初识——概念
算法与数据结构是程序的两个重要方面,两者的有机结合构成程序。程序中数据结构和变量用来描述问题的对象,程序结构、函数、语句用来描述问题的算法。对算法分析,通常用执行算法时所占用的空间大小和消耗时间的多少来作为算法优劣的评判条件。算法的时间复杂度的估算常使用到频度,频度是指某一语句在算法运行过程中执行的次数记为F(n),时间复杂度就是使用频度最大的语句来衡量的,记为T(n)=O(F(n))。简单来说就...原创 2018-07-14 17:36:39 · 420 阅读 · 0 评论 -
算法初识——回溯法八皇后
八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题由国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8x8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意的两个皇后不能在同一行,同一列或者同一斜线上,问有多少种摆法。首先学习下如何对两个皇后不在同一行,同一列以及同一斜线上的判定。不在同一行或者同一列只需要对一个数值进行判定就可以得出,比较好判断,不在同一斜线上应该怎样判定呢?图中的...原创 2018-07-14 22:03:57 · 351 阅读 · 0 评论 -
从n个自然数中找出r个数的组合(5个自然数中寻找3个)
穷举法:void main(){int n=5;int j,i,k;for(i=1;i<=n;i++){for(j=1;j<=n;j++){for( k=1;k<=n;k++)if(j<=i||k<=j) continue;//如果j<=i或者k<=j,那么舍弃当前组合else {cout<<i<<j<&l...原创 2018-07-15 21:54:01 · 7797 阅读 · 0 评论