算法
谭光志
FE/Nodejs/Rust 全栈
Github: https://github.com/woai3c
展开
-
用递归的思想实现二叉树前、中、后序迭代遍历
先复习一下前、中、后遍历的顺序:前序遍历顺序:中-左-右中序遍历顺序:左-中-右后序遍历顺序:左-右-中用递归来写二叉树遍历是非常简单的,例如前序遍历的代码如下:const result = []function preorderTraversal(node) { if (!node) return null result.push(node.val) preorderTraversal(node.left) preorderTraversal(node.ri原创 2020-07-24 22:36:37 · 331 阅读 · 0 评论 -
二分查找(JavaScript实现)
用数组来实现这个算法,前提是先将数组升序排序。思路:数组索引0设为起点start,最后一个元素设为end,把要查找的值和数组中间的值对比,如果要查找的值比中间的值要大,则将数组中间的索引设为start,然后再取start和end的中间值,一直对比直到找到所要找到的值,或没有这个值为止。举例:1-10的数组 我要查找7 先查5 发现7比5大 再查5和10的中间值 7 ...原创 2018-05-17 20:13:21 · 1870 阅读 · 0 评论 -
冒泡排序(JavaScript)
冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 /** * [冒泡排序] * @param {array} [乱序数组] * ...原创 2018-05-18 15:08:48 · 189 阅读 · 0 评论 -
先来先服务(FCFS)作业调度算法(C)
#include<stdio.h>#include<stdlib.h>int main() { int n; int *waitTimes, *runtimes; printf("Enter the number of processes you want to create: "); scanf("%d", &n); ...原创 2019-03-22 15:52:52 · 6164 阅读 · 1 评论 -
最短作业优先(SJF)作业调度算法(C)
#include<stdio.h>#include<stdlib.h>void main() { int n; int *waitTimes, *runtimes, *p; printf("Enter the number of processes you want to create: "); scanf("%d", &n);...原创 2019-03-22 15:54:17 · 2495 阅读 · 0 评论 -
先进先出(FIFO)虚拟存储管理页面淘汰算法(C)
#include<stdio.h>#include<string.h>#include<stdlib.h>int indexOf(char *s, char c, int len) { for (int i = 0; i < len; i++) { if (s[i] == c) { return i;...原创 2019-03-22 16:10:22 · 2081 阅读 · 0 评论 -
最近最少用(LRU)虚拟存储管理页面淘汰算法(C)
#include <stdio.h> #include <stdlib.h>#include <string.h>int pageMissingNum = 0;typedef struct Node { struct Node *pre, *next; int pageNumber; } Node;typedef struct ...原创 2019-03-28 11:37:54 · 1204 阅读 · 0 评论 -
理想型算法(OPT)虚拟存储管理页面淘汰算法(C)
#include<stdio.h>#include<string.h>#include<stdlib.h>int indexOf(char* s, char c, int len, int i) { for (; i < len; i++) { if (s[i] == c) { return i; ...原创 2019-03-28 11:39:43 · 2184 阅读 · 0 评论