![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Data Structure & Algorithm
文章平均质量分 79
quickSort
Programme my future
展开
-
KMeans聚类算法
KMeans算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。k-means 算法基本步骤(1) 从 n个数据对象任意选择 k 个对象作为初始聚类中心;(2) 根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小原创 2013-03-30 15:01:07 · 1882 阅读 · 0 评论 -
打印蛇形矩阵
题目:对于给定的n,打印出如下型式的蛇形矩阵。例如n=3时输出: 1 2 3 8 9 4 7 6 5n=4时输出: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7void fun(int *a, int n,int m, int s){ if(n<=0||m<=0) return; if(原创 2014-01-09 17:09:48 · 1433 阅读 · 0 评论 -
各种排序算法
排序算法总结:直接插入排序、冒泡排序、快速排序、简单选择排序、堆排序。以下均是对数组a[n](a[0…n-1])按升序排序,如果需要降序,类似.原创文章,转载请注明出处:http://blog.csdn.net/fastsort/article/details/100505651、直接插入排序思路:初始时认为a[0]是有序的,然后依次将a[1]…a[n-1]插入到序列中原创 2013-08-18 19:11:47 · 1241 阅读 · 0 评论 -
C++内存管理
C++内存池初探原创文章,转载请注明出处:http://blog.csdn.net/fastsort/article/details/12356369///mymem.h 使用自己定义的内存管理需要包含这个头文件#ifndef __mymem_h__#define __mymem_h__template class CachedObj{public: v原创 2013-10-06 20:35:57 · 1633 阅读 · 1 评论 -
单链表的操作合集
单链表的一些基础算法,做了好长时间,在这里做一个总结。链表节点定义如下:struct Node{ Node * next; int data;};本部分使用的链表都是带头结点的。判空的条件为h->next==0.1.1.1 单链表的就地反转原创 2013-03-11 20:44:12 · 925 阅读 · 0 评论 -
kmp算法(下)——next数组
4、如何计算next数组 对于给定的字符串p,其next数组的含义是:对于k=next[j],p的前缀p[0…k-1]和p的后缀p[j-k…j-1]匹配,k要尽可能的大,且k<j.我们可以根据上述含义写出next的brute force计算代码。复杂度应该是O(n2)。 换个思路,现在next[0]=-1,next[1]=0.假设k=next[j原创 2013-08-14 21:44:26 · 1837 阅读 · 0 评论 -
kmp算法(上)
字符串匹配的常规算法和kmp算法的详细分析过程。原创 2013-08-11 18:01:28 · 1226 阅读 · 0 评论 -
矩形子数组的最大和
问题:给定m*n的矩阵,求矩形子数组的最大和。原创 2013-08-10 15:45:55 · 2327 阅读 · 0 评论 -
随机数问题
最初问题:从n个数中随机选择m个数(0为了便于描述,可以将该问题抽象为:从0-n-1这n个数中随机选择m个数。计算机能够提供的随机数都是伪随机的,我们假设计算机提供的伪随机数为真正的随机。原创文章,转载请注明出处:http://blog.csdn.net/fastsort/article/details/101628710、产生一个随机数系统(c/c++)提供的rand函数只有15原创 2013-08-21 22:51:06 · 2253 阅读 · 1 评论 -
生成随机数|打乱数组 问题
问题描述:从0-n-1这n个数中任意选出k个数。原创 2013-05-27 21:18:36 · 3043 阅读 · 5 评论 -
最大子数组问题——编程珠玑第八章
最大子数组问题——编程珠玑第八章原创 2013-08-07 23:06:06 · 1293 阅读 · 0 评论 -
排序问题-《编程珠玑》 ch1 开篇_ 1.6.3
习题1.6.3对比系统自带的排序(这里使用STL中的sort函数)、使用位图排序和冒泡排序。输入是txt文本,使用生成的随机数序列。测试代码如下:#include #include #include #include #include #include using namespace std;void readData(int a[], int n, const原创 2013-05-30 22:45:56 · 1045 阅读 · 0 评论 -
bitset类的实现
问题:实现一个bitmap类(为避免与stl中的bitset重名),用于位图。测试用例:BitMap bm(20);bm[3] = 1;bm[5] = 0;bool b = bm[12];其本质上是用内存中的一位来表示某种意义。难点在于,使用int或者unsigned int类型保存多位bool变量(也就是0或者1)后,怎么重载下标操作符。如果不使用下标而是使用函数,例如原创 2013-05-13 23:03:34 · 1373 阅读 · 0 评论 -
找出数组中的缺失数据和重复数据
20130506微软实习生面试二面题目:一个数组,大小为n,其元素大小范围为1-n。其中一些数缺失了,另外一些数则重复。先要求找出其中重复的数和缺失的数。我几乎没怎么想,很快的写出:/************************** * a[n],元素范围:1-n * 输出重复的和丢失的数**************************/void fa(原创 2013-05-16 21:25:24 · 3101 阅读 · 2 评论 -
全排列问题
问题描述:给定一个序列,例如abc,则其全排列为abc,acb,bac,bca,cab,cba。实现函数void fun(const char * str);输出其全排列。分析:如果只有一个元素a,则其全排列为a;如果有2个元素ab,则其全排列为ab和ba;也就是a和(b的全排列)以及b和(a的全排列);如果有3个元素abc,则其全排列为a和bc的全排列,b和ac的原创 2013-04-25 15:57:17 · 845 阅读 · 0 评论 -
传话游戏
传话游戏时间限制: 1000ms 内存限制: 256MB描述Alice和Bob还有其他几位好朋友在一起玩传话游戏。这个游戏是这样进行的:首先,所有游戏者按顺序站成一排,Alice站第一位,Bob站最后一位。然后,Alice想一句话悄悄告诉第二位游戏者,第二位游戏者又悄悄地告诉第三位,第三位又告诉第四位……以此类推,直到倒数第二位告诉Bob。两位游戏者在传话中,不原创 2013-04-10 10:00:15 · 995 阅读 · 0 评论 -
湫湫系列故事——减肥记II
湫湫系列故事——减肥记IITime Limit: 5000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1263 Accepted Submission(s): 537Problem Description 虽然制定了减肥食谱,但原创 2013-04-01 10:43:52 · 1269 阅读 · 0 评论 -
双向链表的插入删除和查询
实现双向链表的插入删除和查询,并写出测试用例。#include #include using namespace std;/****实现双向链表的插入、查找、删除*xx笔试算法题***/typedef struct Node{ int data; struct Node * next; struct Node * prev;}No原创 2013-03-17 23:57:30 · 1130 阅读 · 0 评论 -
2、3、4的幂
Given an integer (signed 32 bits), write a function to check whether it is a power of 2.Example:Given num = 16, return true. Given num = 5, return false.Follow up: Could you solve it witho原创 2016-05-13 23:21:28 · 753 阅读 · 0 评论