自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 创建与销毁虚拟内存到物理内存或文件的映射

创建虚拟内存到物理内存或文件的映射#include <sys/mman.h>void* mmap (void* start, // 映射区内存起始地址,NULL系统自动选定,成功返回之size_t length, // 字节长度,自动按页(4K)对齐int prot, // 映射权限int flags, // 映射标志int fd, // 文件描述符off_t offset // 文件偏移量,自动按页(4K)对齐);成功返回映射区内

2020-09-06 16:32:52 206

原创 python中的类属性,类方法和静态方法

类属性 和 类方法属于类对象 而不是这个类的某一个实例对象 该类所有的实例对象共享一份直接可以通过类名.的形式进行访问类方法第一个参数为cls cls引用类对象@classmethod注意不要通过 对象来对类属性进行修改 那么将给对象绑定一个同名的实例属性静态方法@staticmethod静态方法的参数 即没有类对象 也没有实例对象 作为参数python建议不要直接对对象的属性进行直接赋值和访问不能对赋值数据进行检验合法性如果用set和get方法话 无疑对调用造

2020-08-30 15:08:17 225

原创 Python变量之列表与字典

列表 list[]列表: 一系列元素在一个列表中可以存储任意类型的元素可变数据类型: 可以修改列表中的元素len() 可以求列表中元素的个数 'append', 追加 整体追加 把参数作为一个单独的元素添加 'clear', 清空 'copy', 复制 'count', 统计某个元素存在的个数 'extend', 扩展 把另外一个列表中的元素逐一添加到列表中 'index',

2020-08-23 12:09:13 401

原创 Python可变数据类型之集合

集合:用{}表示 可变数据类型 不能使用下标访问[]只能存储不可变数据类型,因为可变数据类型不能进行hash散列即可以改变集合,但不能改变集合中的元素。set 数据存储方式 hashtable 哈希(key) 查找效率最高的set 中没有重复(值相等)的元素集合中元素位置不是由插入顺序指定 而是由值本身决定& : 交集| : 并集^ : 并集-交集- : 差集 'add', 往集合中增加元素

2020-08-23 12:04:40 599

原创 Python中字符串(str)类中的方法注解

字符串的成员函数:‘capitalize’, 首字符大写 其余小写‘casefold’, 返回一个小写字符串的版本‘center’, 居中 然后默认用空格来左右填充到width宽度 width,fillchar‘ljust’, 居左‘rjust’, 居右‘count’, count(sub[,start[,end]]]) 从start处到end统计sub字符串出现的次数‘encode’,

2020-08-23 11:56:03 358

原创 图的深度与广度遍历(C语言代码)

深度遍历类似于二叉树的先序遍历:遍历该节点后再遍历他的子节点;广度遍历相当于二叉树的层次遍历:一层一层的遍历下去;void DFS(Graph *pg,int v,bool visited[]){ visited[v] = true; printf("%c ",pg->vertex[v].key); ENode *node = pg->vertex[v].enodes; while(node != NULL){ int pos = get_position(pg,node-&gt

2020-08-16 15:44:14 2613

原创 数据结构:队列(C语言实现)含详细注释^_^

数据结构:队列(C语言实现queue.h#ifndef _QUEUE_H__#define _QUEUE_H__#include <stdio.h>#include <stdbool.h>#include <stdlib.h>typedef int T;typedef struct Queue{ T *base; size_t cap; //容量 size_t size; //元素的个数 size_t first; //

2020-08-09 10:19:39 240

原创 数据结构:堆栈的实现(c语言)含判断以in[]顺序进栈,能否以out[]顺序出栈;

数据结构:堆栈的实现(c语言)stack.h#include <stdlib.h>#include <stdbool.h>#include <stdio.h>typedef int T;typedef struct Stack{ T *base; //内存 size_t cap; //容量 size_t size; //元素个数}Stack;int stack_init(Stack *s,size_t ca

2020-08-09 10:09:13 223

原创 综合性能最好的堆排序(c语言实现)

综合性能最好的堆排序(c语言实现)思路:把一个数组看成一棵完全二叉树,在把这棵二叉树调整为大栈堆,此时最大值在根节点,然后把根节点与最后一个叶子节点交换,在把这棵树调整为大栈堆;循环结束,则排序完成,为升序。代码:/调整index下标节点void reheap(int arr[],size_t n,int index){ int key = arr[index]; int child = 2*index+1; while(child<n){//存在子节点 if(child+1&lt

2020-08-09 09:59:41 341

原创 1007 素数对猜想 (20分)(C语言)

这道题也很简单:写一个函数判断是否为素数,然后循环,只要这个数与它-2均为素数则计数+1即可;1007 素数对猜想 (20分)我们定义d​n​​ 为:d​n​​ =p​n+1​​ −p​n​​ ,其中p​i​​ 是第i个素数。显然有d​1​​ =1,且对于n>1有d​n​​ 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<10​5​​ ),请计算不超过N的满足猜想的素数对的个数。输入格式:输入在一行给出正整数N。输出

2020-08-01 19:02:05 344

原创 1056 组合数的和 (15分)(c语言)

这道题非常简单,就是每一个数*10+其他数的和;1056 组合数的和 (15分)给定 N 个非 0 的个位数字,用其中任意 2 个数字都可以组合成 1 个 2 位的数字。要求所有可能组合出来的 2 位数字的和。例如给定 2、5、8,则可以组合出:25、28、52、58、82、85,它们的和为330。输入格式:输入在一行中先给出 N(1 < N < 10),随后给出 N 个不同的非 0 个位数字。数字间以空格分隔。输出格式:输出所有可能组合出来的2位数字的和。输入样例:3 2 8

2020-08-01 18:58:47 425

原创 1003 我要通过!c语言 (20分)最近在PTA系统刷了点题,就发上来了。

答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a、 b、 c 均或者是空字符串,或者是仅由字母 A 组成的字

2020-08-01 18:55:20 143

原创 选择排序,超级简单

选择排序###思路进行n-1次循环,每次循环中,从第i+1个位置起找出i后面的最小值与第i个位置进行交换。###代码#include<stdio.h> int main(){ int i,j; int arr[20]={0}; int n=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&arr[i]); } int min = 0; for(i=0;i<n-1;i++) {

2020-07-26 10:12:02 82

原创 二分查找,也很容易

二分查找思路在一个有序的的数组中,每次将要查找的值与数组中间的值进行比较,以升序为例,如果要找的值大与中间值,则去右边查找,否则,反之;代码int search(int arr[],size_t n,int key){//arr[]为要查找的数组,n为数组长度,key为要查找的值; int left = 0; int right = n-1; while(left <= right) { int mid = (left+right)/2; if(key<arr[mid])

2020-07-26 09:48:21 81

原创 string.h中的函数后续

string.h中的函数后续strcat()与strncatstrcat(str1,str2):将str2的内容复制到str1后面。strncat(str1,str2,n):j将str2前n个内容复制到str1后面。注意:在strncat()在复制完前n项后如果没有复制到‘\0’,则会自动补一个‘\0’.mystrcat()#include<stdio.h>#include<assert.h>char *mystrcat(char *dest,const char

2020-07-19 09:55:28 115

原创 string.h中的一些函数

string.h中的一些函数strlen()该函数返回的是字符串的长度,不包含‘\0’。如果用sizeof的话会算上‘\0’,即会比strlen()大1。下面是我自己写的与strlen()达到同样功能的函数。我老师讲,以后企业的笔试大部分都会让你写一个函数原型,即与库中函数达到同样功能的函数;#include<stdio.h>#include<assert.h>int mystrlen(char *str){ assert(str != NULL); int

2020-07-19 09:33:45 445

原创 写一个函数把一个字符串逆序

写一个函数把一个字符串逆序这里涉及到了 字符串,字符串肯定涉及到指针,首先讲一下[ ]的作用[ ] 其实是*()的作用,比如 a[i] 就等同于 (a+i),也等同于(i+a),所以也等同于i[a]。即a[i] == * (a+i) == *(i+a) == i[a];思路:用strlen() 求的字符串长度,从i=0开始到 i<len/2,第 i 个字符与第len-1-i个字符交换位置。代码:#include<stdio.h>#include<assert.h&gt

2020-07-19 09:14:17 1460

原创 约瑟夫问题:有m个人 编号从1,2,...m进行编号 然后从编号为1的人开始报数1,2,..,n重复开始报数 报到n的人出局,求留到最后那个人的编号是多少

约瑟夫问题我在代码里写了很多注释,你肯定能看懂,就不赘述思路了。代码:#include<stdio.h>int main(){ int m,n; int i = 0; scanf("%d %d",&m,&n); int arr[m]; for(i=0;i<m;i++) { arr[i] = 0;//0表示还活着 } int outof = 0;//被杀掉的人 int index = 0;//当前这个人的号码-1,当做数组下标,便与计算; i

2020-07-12 10:07:48 1163 1

原创 任意一个大于2的偶数都可以分解为两个质数之和 给定一个大于2的偶数n,求解这两个质数.

任意一个大于2的偶数都可以分解为两个质数之和.给定一个大于2的偶数n,求解这两个质数.思路输入一个数n,判断其是否为大于二的偶数,一层循环从2开始,直到这个偶数的一半,每次判断n与n-i是否均为偶数,是则输出,否则继续循环,直到循环结束。代码#include<stdio.h>int issushu(int x)//判断是否为素数{ int i; for(i=2;i<=x/2;i++) { if(x%i==0) { return 0; } } ret

2020-07-12 09:25:11 4666 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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