排序:
默认
按更新时间
按访问量

hdoj 1280 前m大的数

给定一个包含N(N #include using namespace std; int main(void) { int N, M; while(cin >> N >> M) { int *temp = new int[N]; for(int i=...

2012-05-11 20:04:10

阅读数:465

评论数:0

hdoj 3791 二叉搜索树

#include using namespace std; struct BiTreeNode//结点结构体 { char ch; BiTreeNode *left; BiTreeNode *right; BiTreeNode(char x, BiTreeNode *l = NULL...

2012-05-11 19:36:02

阅读数:358

评论数:0

归并排序

归并排序的基本操作是合并两个已排序的表。因为两个表是已排序的,所以若将输出放到第三个表中则该算法可以通过对输入数据一趟排序来完成。基本的合并算法是取两个输入数组A和B、一个输出数组C以及三个计数器(Actr、Bctr、Cctr),他们的初始位置位于对应数组的初始端。A[Actr]和B[Bctr]中...

2012-05-03 11:40:45

阅读数:419

评论数:0

实现atoi函数

int a_to_i(const char *str) { int cur; //当前字符 int total;//当前整型数据 int sign; //数据符号 //去点前面的空白符 while(isspace((int)(unsigned char)*str)) { str...

2012-05-02 15:28:26

阅读数:397

评论数:0

堆排序

堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单。 (1)用最大堆排序的基本思想 ① 先将初始文件R[1..n]建成一个最大堆,此堆为初始的无序区; ② 再将关键字最大的记录R[1](即堆顶)...

2012-05-01 11:41:23

阅读数:495

评论数:0

希尔排序

希尔排序是对插入排序的一种改进,具体的时间复杂度本人还没有完全理解,只是明白了它是怎么运行的。 希尔排序基本思想: 先取一个小于n的整数d1作为第一个增量,把文件的全部记录分成d1个组,所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2 #inc...

2012-05-01 10:45:38

阅读数:358

评论数:0

插入排序

插入排序是最简单的排序之一,有N-1趟排序组成,最差时间复杂度为O(n^2),最优时间复杂度为O(n),平均时间复杂度为O(n2)。 #include #include #include using namespace std; template void insertSort(...

2012-05-01 10:19:27

阅读数:401

评论数:0

写一个寻找数组中第二大的数的程序

#include using namespace std; const int MAX_INT = 200000000; int find_sec_num(int *num, int count); int main(void) { int num[] = {1,2,3,4,5,6,7,...

2012-04-10 22:25:12

阅读数:1846

评论数:0

String类中构造函数、拷贝构造函数、赋值函数的实现

class String { public: String(const char *str = NULL); String(const String &rhs); String &operator=(const String &rhs); ~String(); p...

2012-03-26 16:01:15

阅读数:2660

评论数:0

单链表逆序(递归&非递归)

结点定义: struct Node { int data; Node *next; }; 方法一: 设置两个临时指针pre和ne分别标记当前指针的前驱和后继,将当前结点的next指针指向前驱,然后把前驱指针和当前指针往后移动,继续遍历,当然每次移动后都...

2012-03-25 13:54:08

阅读数:5985

评论数:0

判断一个链表中是否有环

如何判断一个链表中是否存在环: 设置两个指针,开始都指向链表头,然后其中一个指针每次向前走一步,另一个指针每次向前走两步,如果快的遇到NULL了,证明该链表中没有环,如果有环,快的指针每次都要比慢的多走一步,最终两个指针会相遇,(注意:这里快指针不会跳过慢指针而不相遇,因为它每次都只比慢...

2012-03-22 22:11:21

阅读数:4982

评论数:0

二叉树的非递归遍历

#ifndef __BINARYTREE_H__ #define __BINARYTREE_H__ #include #include #include using namespace std; template class BinaryTree { public: BinaryT...

2012-03-21 17:36:11

阅读数:561

评论数:0

二叉树的三种遍历(递归)

#ifndef __BINARYTREE_H__ #define __BINARYTREE_H__ #include using namespace std; template class BinaryTree { public: BinaryTree(); void prevCre...

2012-03-20 21:28:45

阅读数:401

评论数:0

第五章 表达式

习题5.2 计算下列表达式的值,并指出哪些结果值依赖于机器? -30 * 3 + 21 / 5 -30 + 3 * 21 / 5 30 / 3 * 21 % 5 -30 / 3 * 21 % 4 【解答】 各表达式的值分别为-86、-18、0、-2。其中,最后一个表达式的结果...

2012-03-19 20:18:08

阅读数:580

评论数:0

第四章 数组和指针

知识点: 由于数组和指针这部分知识比较深奥,本菜鸟决定将C和C++的指针部分的知识点全归到C语言部分来整理,所以这里就只总结一些题目。 部分题目: 习题4.2 下列数组的值是什么? string sa[10]; int ia[10]; int mai...

2012-03-10 00:02:24

阅读数:509

评论数:0

STL中vector部分功能的实现

#ifndef __VECTOR_H__ #define __VECTOR_H__ template class Vector { public: explicit Vector(int size = 0);//加explicit关键字是为了防止类型的隐式转换 Vector(const V...

2012-03-07 17:01:02

阅读数:511

评论数:0

最长公共子序列问题

问题描述: 给定整数A1,A2,…,AN(可能有负值),求连续子序列和的最大值。(为方便起见,如果所有整数都为负值,则最大子序列和为0) 方法一: 这是个显而易见的方法,几乎每个人在第一眼看到该问题都能够想出来的方法。就是将所有的子序列找出来,然后求和最大的一个。...

2012-03-04 22:20:24

阅读数:324

评论数:0

第三章 标准库类型

知识点: 1、string类 几种初始化string类的方法: string s1;//默认构造函数,s1为空串 string s2(s1);//将s2初始化为s1的一个副本 string s3("value");//将s3初始化为一个字符串字面值副本 ...

2012-03-04 10:27:06

阅读数:516

评论数:0

选择问题(求N个数中第k个最大者)

方法1: 对这N个数进行排序,然后找出第k个最大者。 这是最容易想到的也是最容易写出来的方法,但这种方法效率很低,当N比较大的时候不适合用。 代码如下: #include #include using namespace std; typedef vector Vect; ...

2012-03-03 12:55:06

阅读数:2238

评论数:0

第二章 变量和基本类型

知识点: 1、C++中规定了每个算术类型的最小存储空间: bool - char 8位 wchar_t 16位 short 16位 int 16位 long 32位 float 6位有效数字 dou...

2012-03-03 11:03:02

阅读数:521

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭