- 博客(17)
- 收藏
- 关注
原创 2021-07-23
排序算法总结 一.快速排序: 最快情况时间复杂度为(H)(nlgn),最坏情况时间复杂度为(H)() 最坏情况时间复杂度很差,但它的平均性能非常好,因此通常是实际排序应用中最好的选择。 只要划分是常数比例的,算法的运行时间总是O(nlgn).当划分非平衡时快排运行时间为(欧眯噶)(n^2) void quickSort(int a[],int l,int r){ if(l<r){ int i=l,j=r; int x=a[r]; while(i<j){ while((i<j)&
2021-07-23 22:45:22
88
转载 gets()函数
gets()函数用来从标准输入设备(键盘)读取字符串直到回车结果,但回车不属于这个字符串,系统自动用'\0'代替最后的换行符。 头文件:stdio.h
2018-11-04 15:43:36
2258
原创 修改数组指定数据
#include <stdio.h> main(){ double x[]={10,20,50,9,8,100,33},x0=0,x1=0; int i=0,n=0,i0=0; n=sizeof(x)/sizeof(double); printf("old value,new value="); scanf("%lf %lf",&x0,&x1); f...
2018-10-25 17:56:11
780
转载 编写程序,将所给的5个字符串进行排序(使用指针数组完成排序)(使用指针的指针完成排序)
/*使用指针数组完成排序*/ #include <stdio.h> #include <string.h> void sort(char *a[],int size); int main(){ char a[5][20],*b[5]; int i; for(i=0;i<5;i++){ scanf("%s",&a[i]); b[i]=a[i]; ...
2018-10-24 15:48:12
5836
转载 给定5个字符串,输出其中最大的字符串
#include<stdio.h> #include <string.h> int main(){ char a[100],b[100]; int i; gets(a); for(i=0;i<4;i++){ gets(b); if(strcmp(b,a)>0) strcpy(a,b); } printf("最大的字符串是:%s",...
2018-10-24 14:29:38
13843
转载 设有n个整数,现在要使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。
方法一:先将最后m个数保存在新的b数组中,然后将n-m个数拉至原数组a尾部,再将b数组依次赋值给a数组的前m个数。 #include<stdio.h> #define N 80 int main(){ int a[N],b[N],i; int n,m; printf("input the n and m:\n"); scanf("%d %d",&n,...
2018-10-23 16:03:50
9553
1
原创 字符串操作
1.反转字符串:define NUM 80 #include <stdio.h> int main(){ char cc[NUM],c='a'; int i=0,ncount=0; printf("please input a line char:\n"); gets(cc); printf("\n\nyou input:%s\n",cc); for(i=0;cc[i]!...
2018-02-25 17:51:32
197
原创 getchar和putchar
1.getchar的用法:(头文件stdio.h)当程序调用getchar时,程序等待用户输入。用户输入的字符将被存放在键盘缓存区中,直到用户按回车键为止(回车字符也放在缓存区中)。当用户键入回车,getchar才开始从stdin流中每次读入一个字符。getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1.且将用户输入的字符回显到屏幕。代码示例:(将字符串转化为实数)#in...
2018-02-25 16:21:15
8345
转载 队列
队列的ADT:template <typename E> class Queue{ private: void operator =(const Queue&){} Queue(const Queue&){} public: Queue() {} virtual void clear()=0; virtual void enqueue(const ...
2018-02-08 18:56:35
165
转载 约瑟夫环问题
转载:点击打开链接 约瑟夫问题: 共n人参与游戏,从第K人开始报数,每次报m的人出列,找出最后剩下的一人的编号; 分析: 1.定义一个结构体,储存两类数据,分别为data和link; 2.设定两个节点,头结点pnode和当前节点curr,初始化链表,进行编号; 3.从编号1开始,数到第K个数将其删除;然后以K+1位为起点继续报数,~~~,数目不足就返回到编号1处继续接着报数,~~~,直
2018-02-01 17:08:40
173
转载 栈
1.栈的ADT template class Stack { private: void operator=(const Stack&){} stack(const Stack&){} public: Stack(){} virtual ~Stack(){} virtual void clear()=0; virtual void push(
2018-01-31 16:01:36
176
转载 双链表实现
1.双链表结点的实现: template class Link { private: static Link* freelist; public: E element;//value for this node Link* next; Link* prev; Link(const E& it,Link* prevp,Link* nextp){ el
2018-01-31 11:44:17
200
转载 线性表的两种实现
1.顺序表的实现 template class AList:public List{ private: int maxSize; int listSize; int curr;//光标落在当前位置的后面 E* listArray; public: AList(int size=defaultSize){ maxSize=size; lis
2018-01-30 13:43:31
542
转载 汉诺塔问题递归解法
转载地址 点击打开链接 点击打开链接 1.问题描述: 起初有64个金盘串在一个木桩上,从下到上尺寸逐步缩小。需要按照一次只能移动一个金盘并且大的金盘永远不能放在小的金盘上的规定,将这叠金盘移动到另一个木柱上。总共三个木柱,一个用于暂放金盘。 2.问题分析: 三根柱子A,B,C,一根目标柱C,一叠盘子。 (1)将n-1个盘子从A柱移动至B柱; (2)将A柱的最后一个盘子放到C柱;
2018-01-16 22:21:18
363
转载 最大公约数
方法一: 欧几里得算法(m>n) 1.m被n除得到余数r(0 2.若r=0,算法结束,n为最大公约数,否则执行3; 3.m=n,n=r,执行1. int gcd(int m,int n){ int r=m%n; while(r!=0) { m=n; n=r; r=m%n; } 方法二: 遍历搜索
2018-01-16 17:33:23
175
转载 C++和C的头文件的不同
文章转载自 点击打开链接 感谢博主分享 cstring,string,string.h都是文件名,而不是类名。 1.string.h是c标准库下的文件,C++兼容C,所以包含了该文件。 2.cstring是C++对C的简易升级和包装;并将它放置在命名空间std下,使用cstring时要用using namespace std。cstring文件的内容与方法应与string.h相同。在使用C
2018-01-15 22:45:33
485
转载 基础编程——因式分解
因式分解: 1.判断是否为质数; 2.将质数连续以乘积形式输出,得到因式。 代码转载 点击打开链接 我在源代码的输出上做出了改进 [cpp] view plain copy bool IsPrime(int n){ int i,k; k=static_case(sqrt((double)n)); if(n==1)
2018-01-15 19:45:28
1532
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人