<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[melouver的博客]]></title><description><![CDATA[编程笔记]]></description><link>https://blog.youkuaiyun.com/melouver</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; melouver]]></copyright><item><title><![CDATA[Linux 常用IPC]]></title><link>https://blog.youkuaiyun.com/melouver/article/details/79676218</link><guid>https://blog.youkuaiyun.com/melouver/article/details/79676218</guid><author>melouver</author><pubDate>Sat, 24 Mar 2018 11:32:15 +0800</pubDate><description><![CDATA[FIFO又称有名管道，和管道一样，是半双工的，最后一次关闭就丢弃数据。 
消息队列：随内核的存在性。存在优先级，一个取，一个拿，链表或者优先队列。...]]></description><category></category></item><item><title><![CDATA[锁的实现和使用特点]]></title><link>https://blog.youkuaiyun.com/melouver/article/details/79674766</link><guid>https://blog.youkuaiyun.com/melouver/article/details/79674766</guid><author>melouver</author><pubDate>Sat, 24 Mar 2018 09:10:25 +0800</pubDate><description><![CDATA[自旋锁：很少的cas指令即可实现，适用于临界区短，尝试锁的时候会占用CPU时间，不会睡眠 
mutex：实现较多，会导致睡眠，使用等待队列实现]]></description><category></category></item><item><title><![CDATA[Splay、treap、avl的实现]]></title><link>https://blog.youkuaiyun.com/melouver/article/details/79669933</link><guid>https://blog.youkuaiyun.com/melouver/article/details/79669933</guid><author>melouver</author><pubDate>Fri, 23 Mar 2018 17:05:35 +0800</pubDate><description><![CDATA[以下代码全部来自网络，我只是汇总了一下应对面试（sng腾讯云有问到，没答好)Splay 树
typedef struct SplayNode *Tree;
typedef int ElementType;
struct SplayNode
{
    Tree parent; //该结点的父节点，方便操作
    ElementType val; //结点值
    Tree lchild;
  ...]]></description><category></category></item><item><title><![CDATA[(最小)堆的实现]]></title><link>https://blog.youkuaiyun.com/melouver/article/details/79669833</link><guid>https://blog.youkuaiyun.com/melouver/article/details/79669833</guid><author>melouver</author><pubDate>Fri, 23 Mar 2018 16:49:45 +0800</pubDate><description><![CDATA[int len = 0;
vector&amp;lt;int&amp;gt; heap = {0};
void init(vector&amp;lt;int&amp;gt; h) {
  len = 0;
  h.clear();
  h.push_back(0);
}
void put(int x) {
  len++;
  heap.push_back(x);
  int son = len;
  while ( son !...]]></description><category></category></item><item><title><![CDATA[各种基本排序算法]]></title><link>https://blog.youkuaiyun.com/melouver/article/details/79668293</link><guid>https://blog.youkuaiyun.com/melouver/article/details/79668293</guid><author>melouver</author><pubDate>Fri, 23 Mar 2018 16:34:17 +0800</pubDate><description><![CDATA[插入排序 稳定void insertion_sort(vector&amp;lt;int&amp;gt; &amp;amp;v) {
  for (int i = 1; i &amp;lt; v.size(); i++) {
    int tmp = v[i];
    int j = i-1;
    while (j &amp;gt;= 0 &amp;amp;&amp;amp; v[j] &amp;gt; tmp) {
      v[j+1] = v[...]]></description><category></category></item><item><title><![CDATA[字符数组中查找给定字符串]]></title><link>https://blog.youkuaiyun.com/melouver/article/details/79667060</link><guid>https://blog.youkuaiyun.com/melouver/article/details/79667060</guid><author>melouver</author><pubDate>Fri, 23 Mar 2018 14:29:12 +0800</pubDate><description><![CDATA[这是一位同学的面试题。典型的DFS，唯一和以前不同的是，我改进了move的方法。#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;

#include &amp;lt;queue&amp;gt;
using namespace std;

bool check(const vector&amp;lt;vector&amp;lt;char&amp;gt; &amp;gt; &amp;amp;dict,
  ...]]></description><category></category></item></channel></rss>