常用算法 解析

算法

解决问题的步骤,方法

给你一个有序的数组:  [-10,8,20,35,70,1000]

find:

```

var arr = [-10,8,20,30,35,70,1000];

function find(n){

for(var i = 0; i

if(arr[i] == n){

return true;

}

}

return false;

}

alert(find(78));

```

find2:

二分查找 -- 前提:  必须是有序的数组



/////////////

二分,  分治  --  分而治之

分治法:  可以解决绝大多数算法问题

找最小值:一分为二,left=递归左最小,right=递归右最小,比较left和right返回

数组去重:一分为二,left递归去重,right递归去重,循环right,如果不在left里,加到left,返回left




数据结构:

算法,离不开数据结构

有序的数组--数据结构

无序的数组--数据结构

算法,没有最好的算法,有最合适的算法

何为好坏:

衡量算法好坏,两个指标:

时间:时间复杂度 O(log(2)n)

空间:空间复杂度 S

=========2016年11月29日 星期二 14:27:56 =========

分析不同数据结构

数据,增 修改  删除 查询

前提:数据不重复

=========2016年11月29日 星期二 15:06:23 =========

增 查 综合

无序数组 50 39 85

有序数组 5000 5 5100

二叉树 25 12 35

散列 240 75 340

=========2016年11月29日 星期二 15:06:27 =========




=========2016年11月29日 星期二 16:01:16 =========

散列:哈希  hash

数组  存数据时,就用下标

例 :  5--->arr[5]

3--->arr[3]

数n  %  arr.length  --->  目标位置


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,790评论 0 33
  • Ba la la la ~ 读者朋友们,你们好啊,又到了冷锋时间,话不多说,发车! 1.冒泡排序(Bub...
    王饱饱阅读 1,820评论 0 7
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,806评论 18 399
  • 某次二面时,面试官问起Js排序问题,吾绞尽脑汁回答了几种,深感算法有很大的问题,所以总计一下! 排序算法说明 (1...
    流浪的先知阅读 1,227评论 0 4
  • 时光被我一页两页三页翻过。蓝天还是蓝天,依然还是那么的蓝;阳光还是阳光,依然还是那么的刺眼;但他,依然还在吗……—...
    采梦女阅读 320评论 1 4