- 博客(15)
- 资源 (11)
- 收藏
- 关注
原创 冒泡排序优化以及插入排序(本文注释较少适合有一定基础的观看)
#include#define cnt 6 //定义排序个数//冒泡排序优化void Bubble_Sort(int A[],int N){ for(int P = N - 1; P >= 0;P--) { int flag = 0; //定义一个flag判断之后的序列是否有序 for(int i = 0;i < P;i++)
2015-07-24 11:50:26 654
原创 快速排序优化通过中位数优化
#include//交换位置传入两个地址void Swap(int *a, int *b) { int temp; temp = *b; *b = *a; *a = temp;}//求出三个数的中位数并且将pivot(关键字放在i-1的位置上)int Median3(int A[],int Left,int Right) //left = 起点 right = 终点{
2015-07-23 19:26:23 907 1
原创 归并排序及具体介绍
#include#include//复杂度分析//T(N) = T(N/2) + T(N/2) + O(N) T(N) = O(NlogN)//归并作用是将两个序列合并 L = 左边起始位置,R = 右边起始位置 RightEnd = 右边终点位置 void Merge(int A[],int TmpA[],int L,int R,int RightEnd){
2015-07-23 13:40:36 555
原创 归并之将两个有序数组合并(已测试)
#include#include//归并作用是将两个序列合并 L = 左边起始位置,R = 右边起始位置 RightEnd = 右边终点位置 void Merge(int A[],int TmpA[],int L,int R,int RightEnd){ int LeftEnd = R -1; //左边终点位置 左右两列挨着 int Tmp = L;
2015-07-23 12:35:56 784
原创 HDU2040有一楼梯共M级,刚开始时你在第一级
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?此道题使用类似斐波那契数列方法运用迭代进行操作如果递归会超时#include int main() { int N=0,M=0,i=0,sum=0,a[41]={0}; scanf("%d",&N); a[1]=1; a[2]=1; for(i=3;i<=40;i++) //将前
2015-07-22 14:57:39 6616
原创 二叉数组的创建删除插入查找
#include#includetypedef struct TreeNode *BinTree; //定义一个对象指针typedef BinTree Position; //定义一个对象指针名struct TreeNode{ int Data; BinTree Left; BinTree Right;};//二叉搜索数的查找Find Positi
2015-07-21 16:54:27 529
原创 什么是程序员?
在敲代码中无意发现了一篇文章,不禁想到什么是程序员。现在我大一但是感觉就业的时间不会远了大三之后我准备去找实习工作。下学期尽量多呆这个位置因为我喜欢这个位置。态度决定一切 (1)做事,把矛头对准问题的解决办法,而不是人,这是真正有用处的正面效应 (2)欲速则不达,要投入时间和精力保持代码的整洁、敞亮 (3)对事不对人,让我们骄傲的应该是解决了问题,而不是比较出谁的主意更
2015-07-21 15:03:02 604
原创 图的大体架构以及主要知识
首先把图分为4点来定义1.什么是图 图的定义图就是由两个集合组成的含有定点集合以及边集合分为有向图无向图2.图的存储邻接矩阵:行:表示尾(通过遍历非0元素个数可以知道入度)列:标示头(通过遍历非0元素个数可以知道出度)
2015-07-21 12:52:19 833
原创 Palindrome Linked List 234
判断是否为回文链栈 时间复杂度为O(n) 空间复杂度为O(1) ;运用递归 保证空间复杂度为O(1);时间复杂度为O(n);注意定义了一个全局变量 flag = true 用此标记来标记是否在判断中出现了不满足条件的数传入参数是不能传入有空指针的头结点//判断是否为回文链栈 void judgePalindrome(LinkStack *head1,LinkStack *&head2
2015-07-19 13:10:23 648
原创 二叉数组的基本操作
//二叉数组的输出void DisBTree(BTNode* bt){ if(bt) { DisBTree(bt->lchild); DisBTree(bt->rchild); printf("%c ""\n",bt->data); }}//二叉数组的高度int BTHeight(BTNode *bt){ int lchilddep,rchilddep;
2015-07-17 14:14:19 572
原创 小孩报数问题3750
有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。解法一双向循环链表设计创立 删除#include#include#includeusing namespace std;struc
2015-07-16 18:31:18 779
原创 二叉数组的创建以及后续遍历
//二叉数组的创建#include#include#define MaxSize 100typedef struct node{char data;struct node *lchild,*rchild;}BTNode; //二叉数组的基本结点//创建二叉数组传入一个头结点传入一个字符数组void CreateBTr
2015-07-16 13:27:37 563
原创 堆栈基本解释
堆栈(Stack): 具有一定操作约束的线性表只在一端(栈顶,top)做插入,删除插入数据:入栈 (Push)删除数据:出栈(Pop)先入后出:Last in First Out例子:平时洗碗的时候的碗洗完后放在最底端相当于push 然后清洗的时候相当于pop类型名称:堆栈(Stack)数据对象集:一个零个或多个元素的有穷线性表。操
2015-07-15 12:45:12 622
原创 输入一个十进制数N,将它转换成R进制数输出(运用递归实现)
#includeint cnt=0; //用来记录每一个进制存放的位置char num[20]; //用来存放每一个进制的数 void fun(int a,int b){if(a==0) //递归的终止条件return;fun(a/b,b);
2015-07-14 12:49:58 10249
原创 c++链表实例与链表基本知识
我们知道,数组是事先定义好的数组类型与长度 自动为其分配的一连续的存储单元相同数组的位置和距咯是固定的因此可以对数组元素进行随机访问。但若对数组元素进行插入和删除操做,则会引起大量的数据移动,从而使数据处理变得非常复杂,低效。为了解决这个问题,一种称为“链表”的数据结构得到了广泛的应用。1. 链表概述链表是一种数据结构,他的特点是用一组任意的存储单元(可以是连续的,也可以是不连
2015-07-13 16:02:48 1754
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人