自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线性表核心思想整理

尾插,头插都是特定位置的插入,所以理解了定插,头尾插就是0和size-1或length的问题了。最后,以上的位置指的都是数组指针。说明:定删的要点是找到待删位置+1,也就是要删除位置的后一位。因为数组的特性是有限的,所以线性表存在扩容的需求。说明:以尾下标做标记,是因为插入必然导致扩容,而表的特性要求元素有序的后移。第三步,开辟堆空间(无论是C还是Java,本质都是在堆上开辟空间)则,后一位元素覆盖前一位元素([待删位置]=[待删位置+1])和定插一样,明白了定删,头删尾删就是小菜一碟了。

2023-06-27 12:37:54 72 1

原创 快速排序及实用改进

比之其他文章里常常出现的“if(key<arr[j] && j>i)”,省略了j>i。最难理解的是每次key判断后即做arr[i]与arr[j]的交换。相比上面而言逻辑晦涩,但实质仍是左右下标的元素数值与key做比较,然后调至key值的左侧或者右侧,这样写简洁但不直观。如果写成逆序排列的话,则只要把if判断改写为key>arr[j]和key<arr[i]即可。6,逆序只需要修改为key>arr[j]和key<arr[i]即可。2,if(key<arr[j])不需要重复“&&i<j”条件。

2023-04-18 14:33:58 45

原创 数组理解上的难点

1,一维数组名=首元素地址2,sizeof ()是一元运算符sizeof(数组名)=该数组(元素)的字节总数(单位数组类型的字节数),而非由数组标识符表示的指针(内存地址)的大小。例如: int a[9]={0};printf ("%d",sizeof(a));结果为 36。这是因为int整形为4个字节,数组a有9个元素,故此4×9=36。这里需要注意:sizeof只有找到字符串结束标志'\0',才会终止(这是sizeof所以能够计算字节总数的条件)。假设给数组a[9]赋值,则

2023-03-04 12:23:39 138 2

原创 C语言笔记——对函数的一点认识

比如test函数的返回值是char,i的类型时int,它们所以能够“相等”完全是因为采用指针(内存操作)——由此也可以一窥c语言的灵活:不管声明的是什么类型,你都要储存在内存里,只要是存在内存里,那么指针都会“一视同仁”(如若对y或z赋值不是100以内的整数。1,函数的声明与定义可以分开。在库函数scanf中,之所以要用&取地址,就因为程序要直接读取的,是储存内存中的输入值。一个简单的函数功能:把test函数的参数x赋给y,y返回给接受变量i。本例实参是y,z,所以形参按照12,5的顺序代入test函数。

2023-02-12 18:10:50 71 1

原创 C语言学习笔记

关于函数的一个问题。程序是自上往下读取的,因此,在直接定义函数的时候,test()会首先被读取,aWhl++等于2。进入主函数while循环,是从test(2)开始的,所以结果是2,3,4,5,6(因为5≯5所以test函数内还会++一次)。注意,输出的不是iWhl而是aWhl!#include<stdio.h>void test(){ static int aWhl = 1; aWhl++; printf("打印= %d\n",aW

2023-02-06 11:47:30 81 1

空空如也

空空如也

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

TA关注的人

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