算法的艺术

【算法定义】   

         算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。     

【三种算法】

1.冒泡排序

         由来:越大的元素会经过两两交换而"浮"到顶端。
         我的理解:假设现在有10个数,两个相邻的数相比较。较小的向后走和后边的继续比较,依次比较完一轮后较小的就沉底,剩下的9个数依次再比较,经过一次次的比较,较大的就浮到了顶端。

算法的艺术_第1张图片

2.选择排序

     定义:它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

     我的理解:假设现在有10个数,将第一个数放到一个盒子中去和剩下的9个数字相比较,如果被比较这比盒子中的数字大,则将被比较这放到盒子中,将盒子中的数放到被比较者的位置,盒子中的数字接着和剩下的数字相比较,如此循环,待第一轮结束,则挑选出了最大的数字。剩下的9个数字再按照第一轮的方法去循环。

3.插入排序

     插入排序法(点击查看百度百科例子)是将一个数目插入该占据的位置。

     假设现在有5个数,从第二个数开始比较,第二个数和他左边的数相比较,如果他自身比较小则两者交换位置,让大的在后,小的在前。第三个数再和第二个数比较,依次向后。

【对比】

      冒泡排序和选择排序所执行的次数是相等的,插入排序的次数较少。

      冒泡排序第一个找出的是最小值,选择排序第一个找出的是最大值,插入排序第一个找出的是最小值。

【总结】

      算法是一种艺术,算法是为了改造算法。

你可能感兴趣的:(算法的艺术)