![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
青蒿56
这个作者很懒,什么都没留下…
展开
-
希尔排序算法
实现代码class Solution {public: vector<int> sortArray(vector<int>& nums) { // 希尔排序 int len = nums.size(); for (int k = len/2; k >0; k--) { for (int i = k; i < len; i++) { int tmp =原创 2022-01-22 17:11:08 · 175 阅读 · 0 评论 -
堆排序算法
堆排序是以树的概念进行排序,又类似冒泡排序,依次选出序列最大值放置在末尾。一、逻辑思路:a.由没有子结点的父结点开始遍历;b.判断父结点、左子结点、右子结点三者间最大值;c.如果父结点是最大值,则不操作;如果子结点是最大值,则将该子结点和父结点交换,子结点作为父结点,跳转步骤b;d.直到遍历到根结点,将序列形成最大堆,选出序列最大值,放置在末尾;e.再次将剩下序列形成最大堆,选出序列最大值,放置在末尾,直到序列长度为1;注:最大堆:所有可以当父结点的值大于或等于它的子结点的值最小堆:所有可原创 2022-01-15 21:05:14 · 162 阅读 · 0 评论 -
冒泡排序算法
一、逻辑思路a.从0位置开始依次让每个元素与它相邻的元素比大小,若值大元素在值小元素前方,则两者交换;b.一次遍历数组结束后,我们就能得到这个数组的最大值,正如水里的空气泡沫会浮到水面上消失;c.再次遍历,重复步骤a,遍历的长度减一;d.重复步骤c,重复次数为数组长度减一。例子如下:二、实现代码class Solution {public: vector<int> sortArray(vector<int>& nums) { int原创 2022-01-14 20:32:04 · 131 阅读 · 0 评论 -
指针越界问题
char * modifyString(char * s){ int len = strlen(s); char *str = malloc(len+1); memcpy(str,s,len+1); char *ptr = str; char chr = 'a'; while(*ptr != '\0'){ if(*ptr == '?'){ chr = 'a'; while( chr == *(ptr-1) || chr == *原创 2021-01-14 15:35:39 · 831 阅读 · 0 评论 -
《c陷阱与缺陷》--第3章语义“陷阱”总结
1.数组是必须先定义大小和起始地址(起始地址是常量地址),数组赋值可转化为指针赋值。注:指向不同数组的指针不能相减2.非数组的指针,要么指向其他变量,要么申请动态空间(注意要释放)3.作为形参的数组变量,其实被转化为指针4.指针变量值相同代表指向空间相同5.空指针指ull,null空间是不能访问的6.考虑问题边界条件,特例条件7.只有&&、 || 、?:、 , 、存在规定的求值顺序,其他运算符操作顺序未定8.&&逻辑与运算, &按位与运算9.2个有符原创 2021-01-12 12:55:36 · 95 阅读 · 0 评论