![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
邀山
这个作者很懒,什么都没留下…
展开
-
斐波那契数列 迭代和递归的区别
#include<stdio.h>//斐波那契数列//0 1 1 2 3 5 8 13 21......int Fbi(int i){ if(i<2) return i == 0 ? 0 : 1; else return Fbi(i-1)+Fbi(i-2);}int main(){ //普通方法 int a[40]; a[0] = 0; a[1]...原创 2020-02-19 13:10:07 · 277 阅读 · 0 评论 -
数组中容易出现的一些问题
一、代码#include<stdio.h>//数组// 1、在定义数组的同一个函数中,sizeof(arr),表示整个数组;// 2、在定义数组的同一个函数中,&arr+1,表示加整个数组的大小;// 3、其他情况arr表示首元素的地址int fun(int arr[10])//指针(32位4字节,64位8字节){ printf("%d\n",sizeo...原创 2020-02-11 13:03:09 · 314 阅读 · 0 评论 -
快速排序及其优化
一、特点当划分均匀时快速排序的时间复杂度是O(nlogn),空间复杂度是O(logn)。当划分完全不均匀时时间复杂度是O(n²),空间复杂度是O(n)。二、思想快排是对冒泡的进一步改进,它的思想是分治和递归。通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数...原创 2020-02-09 16:35:22 · 350 阅读 · 0 评论 -
冒泡排序及其优化
一、冒泡排序是一种简单的稳定的排序方法算法最好时间最坏时间平均时间额外空间稳定性冒泡O(n)O(n2)O(n2)1稳定二、代码及其优化常规的方法1、代码int main(){ int arr[] = {1,3,4,6,5,2}; int len = sizeof(arr)/sizeof(arr[1]); int temp = 0; pr...原创 2020-02-08 21:13:24 · 152 阅读 · 0 评论 -
内存重叠与内存对齐
内存重叠将长度为n的数组的后m个数据移到前面void Move(int *arr,int n,int m){if(m<=0 || m>=n){return ;}int *brr = (int )malloc(msizeof(int));//int brr[m];int i;for(i=0;i<m;i++) //将后面的m个数据另外保存{ brr[i] = ...原创 2019-03-15 17:53:03 · 155 阅读 · 0 评论 -
结构体大小的判断
结构体大小struct A{int a;int b;};struct B{char a;//1+3//char tmp[3];//保留不用int b;//4};//8struct C{char a;//1+1short b;//2int c;//4};//8struct D{char a;//1+3int b;//4short c;//2};//10+...原创 2019-03-15 17:47:32 · 328 阅读 · 0 评论 -
动态内存及相关函数
malloc —— 申请内存calloc —— 初始化为0realloc —— 修改内存大小(扩大,缩小)free —— 释放内存,内存泄漏malloc:int *arr = (int ) malloc (nsizeof(int)) ;malloc函数只调出申请的空间,返回所调出空间的首地址,需强转成需要的数据类型;calloc:动态申请100整型单元,并且每个单元值为0int*...原创 2019-03-15 17:24:38 · 102 阅读 · 0 评论 -
const的使用和strlen与sizeof的区别
1.作用定义常变量,不允许修改其值eg:int const ca=10;ca值则不允许再改变。int const ca;//error(const不允许定义一个变量。)2.规则基本的数据类型对于const是透明。eg:int const ca=0;const int cb=0.等价const修饰它的直接右边。int *const p=&amp;a。p=&amp;b ...原创 2019-03-04 18:37:33 · 183 阅读 · 0 评论 -
给一个正整数,要求:1.求出它是几位数;2.分别输出每一位数字;3.按逆序输出每一位数字,例如原数为321,应输出123。
//统计n是个位数字//算法:每次丢弃个位数字(n/=10)int GetFigures(int n){int i;for(i=0;n != 0 ; i++){n=n/10;}return i;}//顺序输出,1234->1 2 3 4//算法:调用求位数的函数,确认该正整数为几位数;利用循环求出,取得该正整数最高位应整除的数void PrintOrder(int ...原创 2019-02-26 16:46:46 · 803 阅读 · 0 评论