算法解析
来源:互联网 发布:web前端知乎 编辑:程序博客网 时间:2024/04/30 02:06
时间:2017年3月1日16:26:12
接触编程之前,早已听说过算法一事,但从来没有深入研究过。当进入了前端开发领域的工作之后,平时所做工作都是方案和技术实施相关的事情,和算法更是风马牛不相及。但随着对程序需要进行深入理解和优化,算法一事逐渐显得有点重要,因此,前端工程师也需要学习和掌握基本算法的原理和实现方案。
算法的大致分类,原理,实现方案:
1、十大排序算法:原理+JavaScript代码:
一、冒泡排序-升序:从前至后依次比较两个相邻的元素,将大元素放在后面,重复n次;
function bubbleSort(arr){
var temp,len = arr.length;
for(var i=0;i<len-1;i++){
for(var j=i;j<len-1;j++){
if(arr[j]>arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
二、选择排序-升序:每次遍历整个数组,找到最小的元素放在最前面,重复n次;
function selectionSort(arr){
var minIndex,temp;
for(var i=0;i<arr.length-1;i++){
minIndex = i;
for(var j=i+1;j<arr.length;j++){
if(arr[j]<arr[minIndex]){
minIndex = j;
}
}
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
return arr;
}
三、插入排序-升序:从前至后遍历拿出一个元素,将该元素从后向前比较,插入到第一个大于该元素的后面,重复n次;
function insertionSort(arr){
var preIndex,current;
for(var i=1;i<arr.length;i++){
preIndex = i-1;
current = arr[i];
while(preIndex>=0 && arr[preIndex]>current){
arr[preIndex+1] = arr[preIndex];
preIndex--;
}
arr[preIndex+1] = current;
}
return arr;
}
四、希尔排序,归并排序,快速排序,堆排序,计算排序,桶排序,基数排序
- 算法解析
- NB算法解析,搜索引擎算法
- KMP 算法解析
- RSA算法解析
- KMP算法解析
- 排序算法思想解析
- url解析c算法
- KMP算法深度解析
- 遗传算法解析
- 排序算法思想解析
- KMP算法深度解析
- PHP 排序算法解析
- KMP算法深度解析
- 解析Hash表算法
- 动态规划算法解析
- KMP算法深度解析
- WEKA算法解析--ID3
- 解析模拟退火算法
- Java 下载文件模板
- Java中List for循环的6种写法
- 机器学习知识点(十)马尔可夫链
- Oracle学习-plsql的例子
- Redis:服务器端工作流程
- 算法解析
- docker构建Java Web + Mysql运行环境
- 单例设计模式笔记
- ubuntu 安装常见错误--Could not get lock /var/lib/dpkg/lock
- Oracle之基础查询(一)
- iOS runtime的应用实例
- document
- PathMeasure构造器和方法
- Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) C. Destroying Array 带权并查集