zoukankan      html  css  js  c++  java
  • 算法学习笔记

    1.

    比较容易理解的“冒泡排序”的写法:

    C语言版:

    JS版:


    2.

    快速排序:

    JS版:

     


    3.

      使用“尾插法”和“头插法”建立链表: 

        


    4.

      使用头插法或者尾插法对单链表进行归并:

        

        


    5.

      利用栈匹配括号的算法:

        


    6.

    KMP算法:


    7.

      二叉树的遍历算法:

        

        


    8. 二叉排序树BST

    - 查找关键字的算法:

    - 插入关键字的算法

    - 二叉排序树的构造算法


    9. 数组循环左移或右移

     1 function reverse(arr, left, right) {
     2     var i, j, temp;
     3     for (i = left, j = right; i < j; ++i, --j) {
     4         temp = arr[i];
     5         arr[i] = arr[j];
     6         arr[j] = temp;
     7     }
     8 }
     9 
    10 // 数组循环左移m位
    11 function f1 (arr, m) {
    12     rear = arr.length - 1;
    13     reverse(arr, 0, m - 1);
    14     reverse(arr, m, rear);
    15     reverse(arr, 0, rear);
    16 }
    17 
    18 // 数组循环右移m位
    19 function f2 (arr, m) {
    20     rear = arr.length - 1;
    21     reverse(arr, 0, rear);
    22     reverse(arr, 0, m - 1);
    23     reverse(arr, m, rear);
    24 }

    10. 

     1 // 斐波那契数列函数
     2 function fibonacci(n){
     3     if(n==1||n==2)
     4         return 1;
     5     return fibonacci(n-1)+fibonacci(n-2);
     6 }
     7 
     8 function fibonacci(n) {
     9     if (n === 1 || n === 2)
    10         return 1;
    11      
    12     var a = 1, b = 1, t = 0;
    13     while (n > 2) {
    14         t = b;
    15         b = a + b;
    16         a = t;
    17         --n;
    18     }
    19     return b;
    20 }

    11.

     1 // 题目描述
     2 
     3 // 移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回 
     4 // 输入例子:
     5 // removeWithoutCopy([1, 2, 2, 3, 4, 2, 2], 2)
     6 
     7 // 输出例子:
     8 // [1, 3, 4]
     9 
    10 function removeWithoutCopy(arr, item) {
    11     for(var i=0;i < arr.length;i++){
    12         if(arr[i] == item){
    13             arr.splice(i,1);
    14             i--;
    15         }
    16     }
    17     return arr;
    18 }

    ...

  • 相关阅读:
    JVM 综述
    看 Netty 在 Dubbo 中如何应用
    Netty 心跳服务之 IdleStateHandler 源码分析
    Netty 高性能之道
    Netty 解码器抽象父类 ByteToMessageDecoder 源码解析
    Netty 源码剖析之 unSafe.write 方法
    Netty 出站缓冲区 ChannelOutboundBuffer 源码解析(isWritable 属性的重要性)
    Netty 源码剖析之 unSafe.read 方法
    Netty 内存回收之 noCleaner 策略
    Netty 源码阅读的思考------耗时业务到底该如何处理
  • 原文地址:https://www.cnblogs.com/forzhaokang/p/4862569.html
Copyright © 2011-2022 走看看