<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wodeai1625的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wodeai1625</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wodeai1625]]></copyright><item><title><![CDATA[2020-10-24，人生第一篇正式博客]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/109265686</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/109265686</guid><author>wodeai1625</author><pubDate>Sat, 24 Oct 2020 21:47:49 +0800</pubDate><description><![CDATA[2020年10月24日，属于这个世界的程序员节，当然也是属于自己的程序员节。从没想过会在优快云博客上很正式的记录自己的所思、所学、所想。而且，这是第一次写文章用MarkDown。记得自己在优快云上分享的之前的博客还是2015你2月3日写的源于C语言中的I/O函数。这篇博客我还记得当初是校招时候准备牛客网习题时候做的。

自己的优快云文章基本都是在读研最后一年学习算法导论时候写出来的。其中浏览最多的是下面这一篇。

之前看到自己的文章也是共突破4万之后，当时竟然没有想着就这样写下去，觉得自己可能再写作分]]></description><category></category></item><item><title><![CDATA[KNN算法]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/79289908</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/79289908</guid><author>wodeai1625</author><pubDate>Thu, 08 Feb 2018 15:09:33 +0800</pubDate><description><![CDATA[from numpy import *import operatorfrom os import listdirimport osdef createDataSet():    group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])    labels = ['A','A','B','B']    return group, labelsdef cla...]]></description><category></category></item><item><title><![CDATA[[算法设计-字符的全排列问题]]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/48311369</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/48311369</guid><author>wodeai1625</author><pubDate>Wed, 09 Sep 2015 09:47:39 +0800</pubDate><description><![CDATA[代码：
#include
using namespace std;
void swap(char &a, char &b)
{
char temp = a;
a = b;
b = temp;
}
void func(char a[], int m, int n)
{
if (m == n)
{
for (int i = 0; i 
cout 
cout 
}
el]]></description><category></category></item><item><title><![CDATA[【算法设计-最长公共子串与最长公共子序列】]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/47951777</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/47951777</guid><author>wodeai1625</author><pubDate>Mon, 24 Aug 2015 15:31:44 +0800</pubDate><description><![CDATA[先写代码，然后晚上上传过程图
#include
using namespace std;
int LongestSubStr(char *str1, char *str2)
{
int c[100][100];
int i, j;
int maxi, maxj;
int n = strlen(str1);
int m = strlen(str2);
for (i = 0; i]]></description><category></category></item><item><title><![CDATA[怎样学习的总结]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/46853699</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/46853699</guid><author>wodeai1625</author><pubDate>Sun, 12 Jul 2015 21:48:27 +0800</pubDate><description><![CDATA[形成T型知识结构：专业知识尽可能深入，专业周边知识尽可能精炼。


按照引用列表和作者深入阅读专业书籍。
利用结论型/指南型书籍精炼阅读专业周边书籍。
不断强化自己的按需学习能力。

不一定非要阅读原版。
读书并非多多益善。
读书之前回答下面几个问题：


这本书能给自己带来什么改变？
自己是否需要这种改变？
如果均为Yes，继续；如果有一个No，砍掉。]]></description><category></category></item><item><title><![CDATA[【算法设计-动态规划】钢条切割问题]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/46003355</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/46003355</guid><author>wodeai1625</author><pubDate>Tue, 26 May 2015 08:48:16 +0800</pubDate><description><![CDATA[问题：给定一段长度为n英寸的钢条和一个价格表pi（i=1,2,...,n),求切割钢条方案，使得销售收益rn最大。如果长度为n英寸的钢条的价格pn足够大，最优解可能就是完全不需要切割。
方法一：递归
从上而下把所有的全部搜索一遍
int CUT_ROD(int p[],int n)
{
if(n==0)
return 0;
int q=INT_MIN;
 for(int i=1;i]]></description><category></category></item><item><title><![CDATA[【腾讯2015校园招聘技术类】第24题]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/45840499</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/45840499</guid><author>wodeai1625</author><pubDate>Tue, 19 May 2015 09:04:49 +0800</pubDate><description><![CDATA[题目：请设计一个函数可以把10进制的正整数转换为4位定长的36进制字符串
36进制的规则为："0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
举例说明：
1="0001"
10="000A"
20="000k"
35="000Z"
36="0010"
100="002S"
2000="01JK"
代码如下
#include
using name]]></description><category></category></item><item><title><![CDATA[【算法设计-二叉搜索树】二叉查找树的操作与实现]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/45766325</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/45766325</guid><author>wodeai1625</author><pubDate>Sat, 16 May 2015 10:17:28 +0800</pubDate><description><![CDATA[二叉查找树某个结点的左子树的值都比它小，其右子树的值比它大。
要实现的主要操作


代码实现
#include   
using namespace std;
// BST的结点  
typedef struct node
{
int key;
struct node *lChild, *rChild,*parent;
}Node, *BST;
BST lvis=NULL]]></description><category></category></item><item><title><![CDATA[【散列表-链接法解决冲突】利用链接法来解决冲突的散列表]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/45715801</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/45715801</guid><author>wodeai1625</author><pubDate>Thu, 14 May 2015 07:57:09 +0800</pubDate><description><![CDATA[~~~~(>_
首先看一下这种散列表的结构：


1.每个槽都令其为NULL，注意里面保存的都是指向Node的指针，而不是结点哦~
2.然后我这里把链表的头结点，比如上图的k1,k5,k8的prior指针指向了T这个散列表，因为这样删除的时候会比较简单。
3.注意删除链表中的第一个结点和尾结点时候的不同方法哦。。因为这个耽误了3天时间啊。。。
好了，代码如下：
#include]]></description><category></category></item><item><title><![CDATA[【散列表-直接定址法】含有卫星数据的直接定址法]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/45644925</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/45644925</guid><author>wodeai1625</author><pubDate>Mon, 11 May 2015 15:57:08 +0800</pubDate><description><![CDATA[数组T中的每个值都是指针，指针指向node结点，node结点中的元素为key，data。
代码：
#include
#include
typedef struct Node
{
int key;
int data;
}Node;
typedef struct T
{
  Node **table;//利用指针数组
  int size;
}T;
void T_creat]]></description><category></category></item><item><title><![CDATA[【算法设计-散列表】散列表的直接定址法与位向量]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/45643809</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/45643809</guid><author>wodeai1625</author><pubDate>Mon, 11 May 2015 14:34:44 +0800</pubDate><description><![CDATA[位向量（bit vector)是一个仅包含0和1的数组。长度为m的位向量所占空间要比包含m个指针的数组少的多。用一个位向量来表示一个包含不同元素的动态集合。字典操作的运行时间为0（1）
代码：
#include   
#include   
#define INT_BIT 32  
  
typedef struct {  
     unsigned int *table;  
]]></description><category></category></item><item><title><![CDATA[【c位操作】按位与，按位或]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/45640825</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/45640825</guid><author>wodeai1625</author><pubDate>Mon, 11 May 2015 09:57:56 +0800</pubDate><description><![CDATA[KEY |= (1


 KEY &= ~(1

 KEY ^= (1]]></description><category></category></item><item><title><![CDATA[【算法设计-二叉树遍历】二叉树的递归与非递归遍历方法]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/45598725</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/45598725</guid><author>wodeai1625</author><pubDate>Sat, 09 May 2015 09:00:01 +0800</pubDate><description><![CDATA[非递归方法利用一个堆栈来将处理。
代码如下：
#include
#include

typedef struct  Node
{
  char data;
  struct Node *lchild,*rchild;
}*BitTree,Node;
typedef struct Stack
{
 Node *key[20];
 int top;
}stack;
voi]]></description><category></category></item><item><title><![CDATA[【算法设计-单链表的逆转】单链表逆转实现]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/45566111</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/45566111</guid><author>wodeai1625</author><pubDate>Thu, 07 May 2015 20:32:19 +0800</pubDate><description><![CDATA[1.在Θ(n)时间内将链表转置，而且只能需要少量的额外空间


这里需要用3个指针使得q指向p然后依次后移。
代码：
#include
using namespace std;
typedef struct Node
{
int data;
struct Node *next;
}LinkList;
LinkList* Create_End();
void printLi]]></description><category></category></item><item><title><![CDATA[【算法设计-链栈和链队列】链栈和链队列的实现]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/45565489</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/45565489</guid><author>wodeai1625</author><pubDate>Thu, 07 May 2015 19:55:59 +0800</pubDate><description><![CDATA[1.链队列。利用带有头结点的单链表来实现链队列,插入和删除的复杂度都为o(1)
代码：
#include
#include
typedef struct Qnode
{
 int data;
 Qnode *next;
}Qnode;
typedef struct LinkQueue
{
Qnode *front;
Qnode *rear;
}LinkQueue;
vo]]></description><category></category></item><item><title><![CDATA[【算法设计-链表】单链表与双向循环链表]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/45534629</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/45534629</guid><author>wodeai1625</author><pubDate>Wed, 06 May 2015 14:42:27 +0800</pubDate><description><![CDATA[1.单链表代码：包含了尾插法，插入，删除操作。
有头结点的单链表也是为了在第一个位置插入和删除时候容易，不需要另外讨论
#include
#include
typedef struct Linklist
{
 int key;
 Linklist *next;
}Linklist;
Linklist* create_end()
{
  Linklist *head=(Link]]></description><category></category></item><item><title><![CDATA[【算法设计-快速排序】随机快速排序算法]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/45477029</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/45477029</guid><author>wodeai1625</author><pubDate>Mon, 04 May 2015 11:00:23 +0800</pubDate><description><![CDATA[1.算法流程：




但是为了减少算法因为初始数据可能已经部分按大小排序，导致算法复杂性会变成o(n2)进行了随机选择方法
在random_partition中随机产生(p,r)之间的一个数字，然后交换A[i]与A[r]这样会使得快速排序算法的复杂性得到降低。
代码实现：
#include
#include
#define DataType int 
void FastSo]]></description><category></category></item><item><title><![CDATA[【算法设计-优先队列】优先队列的实现与操作]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/45476291</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/45476291</guid><author>wodeai1625</author><pubDate>Mon, 04 May 2015 08:18:32 +0800</pubDate><description><![CDATA[优先队列是堆排序的一个具体应用。
优先队列分为如下几个操作：
1.INSERT(S，x）把元素x插入到优先队列中。
2.MAXIMUM(S):返回s中具有最大关键字的元素。
3.EXTRACT_MAX(S):去掉S中最大关键字的元素
4.INCREASE_KEY(S,x,k)：将元素x的关键字值增加到k，k是不小于x的元素。
优先队列的应用：
1.共享计算机系统的作业调度。最大优先队]]></description><category></category></item><item><title><![CDATA[【算法设计-堆排序】大根堆排序]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/45462379</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/45462379</guid><author>wodeai1625</author><pubDate>Sun, 03 May 2015 22:30:36 +0800</pubDate><description><![CDATA[1.堆排序不仅拥有与归并排序一样的时间复杂度为o(nlgn)，而且空间复杂度所占秩序额外的几个元素空间，这个又有插入排序的优势。
2.堆排序分为3部分，第一部分是保持堆的性质的函数MAX_HEAPIFY函数，用于保持堆的性质：父结点的值要大于子节点。
                                     第二部分是创建大根堆的函数，BUILD_MAX_HEAP这个函数从第一]]></description><category></category></item><item><title><![CDATA[【算法设计-随机算法】利用随机算法生成均匀随机排序数组]]></title><link>https://blog.youkuaiyun.com/wodeai1625/article/details/45337325</link><guid>https://blog.youkuaiyun.com/wodeai1625/article/details/45337325</guid><author>wodeai1625</author><pubDate>Tue, 28 Apr 2015 16:12:16 +0800</pubDate><description><![CDATA[思想：
1.首先生成1到n的数组A
2.生成1到n^3的n个数的随机数组P
例如A= P=
3.对p数组进行从小到大的排序（利用快速排序），生成数组P1=
4.根据3中P1的顺序，生成随机数数组A1=
代码：
#include
#include
#include
//快速排序，平均时间复杂度o(nlog2n),最好为o(log2n),最坏为o(n2).是不稳定排序( 交换排序）]]></description><category></category></item></channel></rss>