博客列表 >常见算法考察点

常见算法考察点

Maple201的博客
Maple201的博客原创
2018年03月30日 16:51:07836浏览

php冒泡排序

原理和实现: 两两相邻的数进行比较,如果反序就交换,否则不交换

 1,3,2,4,6,5

for($i=0,$c=count($arr);$i<=$c;$i++){

    for($j=0;$j<$c;$j++){

         if($arr[$j]>$arr[j+1]){

            $temp=$arr[j+1];

            $arr[j+1]=$arr[j];

            $arr[j]=$temp;

         }

    }

}

echo $arr;

直接插入排序:每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。

延伸:算法的概念

解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作

一个问题可以有多个算法,每种算法有不同的效率

一个算法具有五个特征:有穷性,确切性,输入项,输出项,可行性


延伸:时间复杂度和空间复杂度的概念

时间复杂度:执行算法所需要的计算工作量

时间复杂度的计算方式:

得出算法的计算次数公式

用常数1来取代所有时间中的所有加法常数

在修改后的运行次数函数中,只保留最高阶项

如果最高阶项存在且不是1,则去除与这个项相乘的常数


空间复杂度:算法需要消耗的内内存空间


延伸:常见排序算法

冒泡排序,直接插入排序,希尔排序,选择排序,快速排序,堆排序,归并排序(最优)


延伸:常见查找算法

二分查找(最优):从数组的中间元素开始,如果中间元素正好是要查找的元素,搜索结束,如果某一个特定元素大于或者小于中间元素,则在数组大于或者小于中间元素的那一半中查找,而且跟开始一样从中间开始比较,如果某一步骤数组为空,代表找不到。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议