数据结构和算法
文章平均质量分 80
黑暗骑士V
精通C++、python、java,最近在考虑换工作,有志趣相投的老板可以交流下
展开
-
记录一个使C/C++多线程无法加速计算的问题
提示:本文的所有代码由C语言实现,多线程库用的是pthread.h,操作系统是win10。windows下使用pthread.h,可以参考下这篇文章:vs2017如何配置pthread环境文章目录前言一、多线程代码1.带有返回值的多线程代码2.结果展示二、问题修复1.修改子线程调用方法2.结果展示总结前言最近因为工作需要,调研了一下C语言的多线程使用。在测试常用功能的时候遇到这么一个诡异的问题,通过结构体获取返回值的时候,多线程操作变慢了。经过一天的努力,最终解决了这个问题。以下是对这个问题的记录。原创 2021-01-04 11:13:28 · 1788 阅读 · 1 评论 -
Leetcode:300. 最长上升子序列(获得所有最长子序列)
提示:本文的所有算使用C++实现,使用的开发工具是Visual Studio 2017文章目录前言一、原题实现1.题目描述2.算法实现3.结果分析二、算法扩展1.增加记忆数组2.搜索所有有效上升序列3.结果展示总结前言本文对Leetcode:300. 最长上升子序列进行了扩展。原文求的是最长上升子序列的长度。本文在求出最长子序列之后,对所有最长上升的子序列进行了求解。本文只是给出一种实现方式,并不代表最优方式,欢迎各位讨论。一、原题实现1.题目描述给定一个无序的整数数组,找到其中最长上升子序原创 2020-12-12 00:19:30 · 529 阅读 · 0 评论 -
面试题:Python实现双向链表快速排序
市面上流行着这样一道面试题,说是需要10分钟写出来。如果没做过练习的,这道题还真没那么容易快速实现。在下拿Python通过50行代码实现一遍,以备各位不时之需。1)step1:定义节点class Node: def __init__(self,val): self.val=val #节点值 self.pre=None #上个节点指针 self.next=None #下个节点指针2)step2:通过数组初始化双...原创 2020-09-15 11:18:06 · 465 阅读 · 0 评论 -
JavaScrip通过堆实现针对对象的PriorityQueue
本文将通过最大堆实现优先队列,入队复杂度lg(n),出队复杂度lg(n)step1:实现最大堆大堆顶定义,每个二叉树的节点都大于左右子节点class MaxHeap{ //构造方法 constructor(key) { this._tree=[] //初始化数组保存数据 this._key=key //设置排序字段key名 } //往队列里添加一个元素,复杂度O(ln(n)) add(e){ t原创 2020-07-30 13:29:44 · 157 阅读 · 0 评论