数据结构与算法
草根_USTC
不要追一匹马,你用追马的时间去种草,待春暖花开时,能吸引一批骏马来供你选择;不要刻意巴结一个人,用暂时没有朋友的时间去提升自己的能力,待时机成熟时,便有一批朋友与你同行;用人情做出来的朋友只是暂时的,用人格做出来的朋友是长久的。所以,丰富自己比取悦别人更有力量。种下梧桐树,引得凤凰来;你若盛开,蝴蝶自来。你若精彩,天自安排。 ——屠呦呦
展开
-
// 产生10到100随机数
// 产生10到100随机数//#include "stdafx.h"#include "stdlib.h"#include "time.h"int main(int argc, char* argv[]){ int i; int f,g; srand((unsigned)time(NULL)); for(i=0;i { f=rand()%(100-10+1); g=f+10; printf("%d/n",g); } return 0;}原创 2010-10-20 23:30:00 · 1769 阅读 · 0 评论 -
快速排序算法
#include "stdafx.h"#include "stdlib.h"#include "stdio.h"#include "time.h"#include "math.h"int partion(int a[],int low ,int high){ int pivotkey=a[low]; while(low { while(low=pivotkey) { high--; } a[low]=a[high]; //比pivotkey小的移到低端,且high位置空闲 while(原创 2010-10-29 19:45:00 · 271 阅读 · 0 评论 -
建立有序链表算法
#include "stdafx.h"#include "stdlib.h"typedef struct Node{ int data; Node* next;};void insert(Node *s ,Node *a){ Node *p,*q; p=NULL; q=NULL; p=s; if(p->next==NULL) //空链表 { p->next=a; //a->next已经是NULL s->data=s->data+1; return; } q=p; p=p->next ;原创 2010-10-29 12:06:00 · 636 阅读 · 0 评论 -
KMP算法C++实现
<br />// Test.cpp : 定义控制台应用程序的入口点。<br />//<br />#include "stdafx.h"<br />#include <iostream><br />using namespace std;<br />void get_next(char*t, int next[ ])<br />{<br /> int t_len=strlen(t);<br /> int i=0; //求解每个next[i]<br /> next[0]=-1; //递推基本条件原创 2011-05-12 23:33:00 · 416 阅读 · 0 评论 -
归并排序求逆序对 O(nlogn)
<br />设数组为A,关键是在合并的时候,用数组L 和 R 表示左右两个子数组,因为逆序对的个数f(A) = f(L) + f(R) + s(L,R);其中f(L) 和 f(R) 分别表示L 内部 和R内部的逆序对个数,s(L.R)表示大数在L,小数在R的逆序对。因为L和R是已经排好序的,故其实只需求s(L,R).这个可以在合并L和R依次进行比较的时候算出。<br /> <br />算法实现:<br />// MergeSort.cpp : 定义控制台应用程序的入口点。<br />//<br />#inc原创 2011-05-16 09:18:00 · 966 阅读 · 0 评论 -
N个元素数组中第K大元素
<br />// K-key.cpp : 定义控制台应用程序的入口点。<br />//<br />#include "stdafx.h"<br />#include <time.h><br />#include <iostream><br />using namespace std;<br /> <br />template <typename T><br />int pivotIndex(T arr[],int first,int last)<br />{<br /> //随即产生一个pivotKey原创 2011-04-14 14:30:00 · 400 阅读 · 0 评论 -
Btree算法实现代码(转载)
Btree算法实现代码 基于>中关于btree算法的描述,虽然书中没有关于删除结点算法的伪码实现,不过还是根据描述写了出来,经过测试,似乎是没有问题,欢迎测试找bug. 不过,值得一提的是,btree算法大部分情况下是使用在操作存放在诸如磁盘等慢速且大容量介质中的,但转载 2011-10-13 02:00:01 · 617 阅读 · 0 评论 -
最长公共子串问题
最长公共子串问题( longest common substring problem)也就是找到两个或以上的字符串的最长公共子串,该字串在位置上相邻。 例如ABAB,BABA,ABBA,最长公共子串为AB。 我们可以把该问题定义如下: 给出两个字符串S和T,S的长度为m,T的长度为n,找出S与T的最长公共子串。 假设S = “ABAB”,T=“BABA”,我们可以构造一个如下的矩阵:原创 2012-09-10 22:31:41 · 453 阅读 · 0 评论 -
LUA获取utf8字符串长度
--- 获取utf8编码字符串正确长度的方法 -- @param str -- @return number function utfstrlen(str) local len = #str; local left = len; local cnt = 0; local arr={0,0xc0,0xe0,0xf0,0xf8,0xfc}; while left ~= 0 do lo转载 2013-10-25 14:16:29 · 7077 阅读 · 0 评论