算法浅谈

缺乏、安全感 2022-07-16 14:57 322阅读 0赞

时间:2017年3月1日16:26:12

《我的博客地图》

  1. 接触编程之前,早已听说过算法一事,但从来没有深入研究过。当进入了前端开发领域的工作之后,平时所做工作都是方案和技术实施相关的事情,和算法更是风马牛不相及。但随着程序需要进行深入理解和优化,算法一事逐渐显得有点重要,因此,前端工程师也需要学习和掌握算法的概念、原理和实现方案。

算法,是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。算法具有五个基本特征:输入、输出、有穷性、确定性和可行性。
输出:算法至少有一个或多个输出。
有穷性:指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成。
确定性:算法的每一个步骤都具有确定的含义,不会出现二义性。
可行性:算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限次数完成。
正确性:算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义性、能正确反映问题的需求、能够得到问题的正确答案。

高级语言编写的程序在计算机上运行时所消耗的时间取决于下列因素:算法采用的策略,方案;编译产生的代码质量;问题的输入规模;机器执行指令的速度

1、十大排序算法

  1. 一、冒泡排序-升序:从前至后依次比较两个相邻的元素,将大元素放在后面,重复n次;

function bubbleSort(arr){
var temp,len = arr.length;

  1. for(var i=0;i<len-1;i++)\{
  2. for(var j=i;j<len-1;j++)\{
  3. if(arr\[j\]>arr\[j+1\])\{
  4. temp = arr\[j\];
  5. arr\[j\] = arr\[j+1\];
  6. arr\[j+1\] = temp;
  7. \}
  8. \}
  9. \}
  10. return arr;

}

  1. 二、选择排序-升序:每次遍历整个数组,找到最小的元素放在最前面,重复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;
}

  1. 三、插入排序-升序:从前至后遍历拿出一个元素,将该元素从后向前比较,插入到第一个大于该元素的后面,重复n次;

function insertionSort(arr){
var preIndex,current;
for(var i=1;i=0 && arr[preIndex]>current){
arr[preIndex+1] = arr[preIndex];
preIndex—;
}
arr[preIndex+1] = current;
}
return arr;
}

  1. 四、希尔排序,归并排序,快速排序,堆排序,计算排序,桶排序,基数排序

发表评论

表情:
评论列表 (有 0 条评论,322人围观)

还没有评论,来说两句吧...

相关阅读

    相关 磁盘调度算法

             在去年的操作系统考试和今年的软考中,多次提到磁盘调度问题,在此做个总结:          磁盘调度在多道程序设计的计算机系统中,各个进程可能会不断提出不同

    相关 算法

    时间:2017年3月1日16:26:12 [《我的博客地图》][Link 1]     接触编程之前,早已听说过算法一事,但从来没有深入研究过。当进入了前端开发领域的工作之

    相关 搜索引擎的核心算法

    外链是搜索引擎算法中,判断网站权重高低的重要指标,当用户在搜索框中输入关键时,搜索引擎面对大量拥有相同内容的网页,首先需要解决的就是,通过哪些参数觉得网页排名的高低。今天,笔者

    相关 RMQ算法

    定义 RMQ (Range Minimum/Maximum Query)问题:是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标