- 博客(23)
- 收藏
- 关注
原创 直接选择排序
一、直接选择排序的核心思想直接选择排序是选择排序的一种,它是实现起来最简单的,但是效果也是最不好的。它的核心思想是将在无序区中选取一个最小的元素放在有序区的最后。它的平均、最好、最坏时间复杂度都是O(n方),空间复杂度是O(1),是不稳定的排序。二、代码实现void SelectSort(int arr[],int n){ if(arr == NULL || n <= 0)return; int i,j,index; for(i = 0;i<n;i++) { index =
2020-08-27 12:02:44
293
原创 直接插入排序
一、直接插入排序的思想直接插入排序是插入排序的一种,他的核心思想是定义数列的一边是有序的,一边是无序的,是无序的数列向有序数列中插入的一种排序。可以理解成是斗地主中抓牌然后你排序的过程。直接插入排序最好的情况是数列正序O(n),最坏是数列逆序O(n方),平均时间复杂度是O(n方),是一种稳定的原地排序,空间复杂度O(1)。二、代码实现:首先定义i=1,代表无序数列的第一个元素,j=i-1,代表有序数列的最后一个元素。当有序数列的最后一个元素大于无序数列的第一个元素时,进行交换。void Ins
2020-08-27 11:35:26
801
原创 不用+-*/完成加法运算
#include<stdio.h>int add_without_operator(int a,int b){ if(b == 0) return a; int sum; int plus; sum = a ^ b; plus = (a & b)<<1; add_without_operator(sum,plus);}int main(){ int a = add_without_operator(1,2); printf("%d",a); r
2020-08-10 07:55:40
147
原创 虚拟机报错:Operation inconsistent with current state.
我安装的是ubuntu16.04版本,多次开机都出现了这个错误。有的时候可以继续用,有的时候需要重启。在网上找了很多方法,比如说以管理员的权限启动、删除ub文件夹中的后缀为lck的文件等等,都没有实际的效果。之后我总结一些规律,解决了这一问题:第一点是不要多次开虚拟机;第二点是关机的时候一定要正常关机;第三点就是要单击Ubuntu,不要双击。希望可以帮助到和我有一样烦恼的同学们...
2020-08-04 12:06:34
1274
原创 文本文件复制
#include<stdio.h>int main(){//FILE *pFile=fopen("D:\\111.txt","r"); FILE *pFile1=NULL; FILE *pFile2=NULL; char c; fopen_s(&pFile1,"D:\\111.txt","r+"); fopen_s(&pFile2,"D:\\222.tx...
2019-11-07 17:22:07
188
原创 二进制文件复制
#include<stdio.h>int main(){ FILE *pFile1=NULL; FILE *pFile2=NULL; size_t nRead;\\记录返回值 size_t nWrite; char buf[1024]={0}; fopen_s(&pFile1,"C:\\Users\\LENOVO\\Pictures\\批注 2019-11.pn...
2019-11-07 17:18:18
385
原创 递归
#include<stdio.h>int JieCheng(int n);//阶乘循环实现int JieCheng1(int n);//阶乘递归调用实现int FBNQ(int n);//斐波那契数列递归实现int FBNQ1(int n);//斐波那契数列循环实现int MyStrLen(char*str);int main(){ char*str="1234"; ...
2019-11-05 22:48:06
128
原创 联合体union
#include<stdio.h>union AA{int a;char b;short c;};int main(){union AA a;printf("%d",sizeof(a));printf("%p",&a->a);//共用一块地址,大小取决于最大的基本类型printf("%p",&a->b);printf("%p",&...
2019-11-05 22:44:29
177
原创 枚举enum
enum AA{SHITOU,JIANZI=100,BU};int main(){ enum AA a=SHITOU; switch (a) { case SHITOU: printf("石头\n"); break; case JIANZI: break; case BU: break; default: break; } return 0;}枚...
2019-11-05 20:25:28
129
原创 双向链表添加
#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct NODE{ int id; struct NODE *pNext; struct NODE *pLast;}List;void AddNode(List **ppHead,List **ppEnd,int id...
2019-11-04 19:04:29
127
原创 通讯录测试与封装
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>typedef struct AA{ int id; char* name; char* tel; struct AA *pNext;}List;int GetID();char* GetN...
2019-10-29 20:33:46
224
原创 随机数
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>int main(){ srand((unsigned int)time(NULL)); printf("%d\n",rand()); printf("%d\n",rand()); printf(...
2019-10-29 19:04:50
154
原创 删除链表
#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct NODE{ int id; struct NODE* pNext;}List;void AddNode(List **ppHead,List **ppEnd,int id) ;void DeleteNode(L...
2019-10-28 20:37:30
144
原创 链表添加
#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct AA{ int id; char* name; char* birth; struct AA* pNext;}Node;Node* GetNode(int id,char* name,char* birth ...
2019-10-25 20:17:04
214
原创 链表、遍历链表
#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct AA{ int id; char* name; char* tel; struct AA *pNext;}Node;int main(){ Node a={1,"佩奇","11",NULL}; Node...
2019-10-23 20:26:17
1870
原创 结构体struct对齐
结构体:不同类型元素的集合结构体对齐:要保证数据传送的完整性,否则会影响效率。对齐原则:宏观微观都以最大类型所占字节为标准进行对齐。#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct AA{ int a; char b; short c;}BB;int m...
2019-10-23 20:25:07
200
原创 结构体定义以及初始化
#include<stdio.h>#include<stdlib.h>#include<string.h>struct AA{ int id; char* name; char* tel;};int main(){//初始化一个结构体 struct AA a={1,"Police","110"}; //修改一个结构体 a.name="...
2019-10-23 20:11:42
660
原创 GetString()
#include<stdio.h>#include<stdlib.h>#include<string.h>char* GetString();int main(){ char*p=GetString(); return 0;}char* GetString(){ //1、先申请一个字符数组 int size=5; char*str=(c...
2019-10-22 20:39:12
3834
1
原创 getchar()函数
#include<stdio.h>#include<string.h>int main(){ //getchar():阻塞函数,从缓冲区中读取一个字符,无参数,返回值为int类型 //阻塞函数:一直等待一个操作的执行。 //输入abc,则实际有四个字符a、b、c、\n printf("%c\n",getchar()); return 0; }...
2019-10-22 18:38:46
894
原创 判断是否回文(回文指的是顺读和逆读都一样的字符串) "abcdcba",返回值自定义Bool类型
#include<stdio.h>#include<string.h>typedef int Bool;#define TRUE 1;#define FALSE 0;Bool HW(char* str1);int main(){ if(HW("123321")) { printf("yes"); }...
2019-10-21 20:31:30
1194
原创 翻转字符串
#include<stdio.h>#include<string.h>void exchange(char* str1);int main(){ char str1[20]="abcd";//不用char *str1="abcd";因为其指向字符常量区不可被修改。 exchange(str1); printf("%s",str1)...
2019-10-21 20:12:36
190
原创 将一个字符串插入到另一个字符串中 "abcd" "12345" 3
#include<stdio.h>#include<string.h>void cha(char* str1,char* str2,int n);int main(){ char str1[20]="abcd"; cha(str1,"123",3); printf("%s\n",str1); return 0;}void cha(char* str1,c...
2019-10-21 19:32:07
724
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人