
数据结构与算法
文章平均质量分 50
简单的数据结构与算法
_NOUS_
耐心
展开
-
字节实习半年小感悟
以前总觉得这句话是一句非常感性非常搞笑的话:“xx的智慧如同天上的皓月,我不及也(繁星比皓月,驽马比麒麟,寒鸦比凤凰)”。但最近潜意识里会想到这句话,时不时冒出在脑子里思考。从开始准备答辩到现在差不多四五十天的时间,虽然做需求和答辩交替进行,但PPT已经修改迭代六七个版本了。这个过程学到的东西足以改变我的一生。看到了差距也明确了具体差在哪,感觉浪费了二十年青春。字节一年人间三年一点都不夸张。估计还要再修改一两个版本。实习差不多半年了,快要答辩了。原创 2023-08-20 23:03:26 · 374 阅读 · 2 评论 -
C语言错题集(LeetCode、MOOC、PTA、牛客网)
C语言错题集PTA 练习2-6 计算物体自由下落的距离 (5 分)输入格式:输出格式:练习2-12 输出华氏-摄氏温度转换表 (15 分)输入格式:输出格式:输入样例1:输出样例1:输入样例2:输出样例2:PTA 练习2-13 求N分之一序列前N项和 (15 分)输入格式:输出格式:输入样例:输出样例:PTA 习题5-2 使用函数求奇数和 (15 分)函数接口定义:裁判测试程序样例:输入样例:输出样例:PTA 习题5-4 使用函数求素数和 (20 分)函数接口定义:裁判测试程序样例:输入样例:输出样例:PT原创 2021-07-25 16:47:19 · 7430 阅读 · 1 评论 -
学生管理小系统2.0(C语言)
#include <stdio.h>#include <stdlib.h>//其中包含system函数#include <conio.h>//定义了通过控制台进行 数据输入 和数据输出的函数,如getch函数。#include <string.h>//定义字符数组#include <math.h>#include<Windows.h>typedef struct student //学生结构信息原创 2021-04-18 16:50:45 · 310 阅读 · 1 评论 -
数据结构树、堆——学习记录
树:1.文件夹是树而不是无向图,因为任意两个文件夹有且仅有唯一的一条路径连通。二叉树1.根节点有时也称为祖先。2.深度是指从根到这个结点的层数(根为第一层)。3.满二叉树:如果二叉树中每个内部结点都有两个儿子,这样的二叉树叫做满二叉树。4.完全二叉树:如果一棵二叉树除了最右边位置上有一个或者几个叶结点缺少外,其他都是丰满的,这样的二叉树叫完全二叉树。(除了树的最后一层结点不需要是满的,其它的每一层从左到右都是满的,如果最后一层结点不是满的,那么要求左满右不满)。右图中N没有右儿子结点,因此不原创 2021-04-18 16:37:08 · 192 阅读 · 0 评论 -
线性表的链式存储结构——链表学习记录
链表总结#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct ListNode{ int val; struct ListNode* next;}ListNode;struct ListNode* createListtail(struct ListNode* L){/*尾插创建含头结点的链表,输入-1终止。 */ int n; scanf("%d",&n);原创 2021-04-13 19:55:35 · 414 阅读 · 0 评论 -
C语言直接插入排序
最好:本身有序,只考虑前一次,进行n-1次比较,0次移动 时间O(n).最坏:数组逆序,每次都要和前面的全部比较移动 时间复杂度:O(n^2).#include <stdio.h>void insertsort(int a[],int n){ for(int i=1;i<n;i++){ if(a[i]<a[i-1]) { int t=a[i];//i之前的元素为已排好的有序表 int j=i-1;// 要a[i-1]为有序表最后一项,要插入到有序表中,所以不原创 2021-03-27 14:03:58 · 143 阅读 · 0 评论 -
C语言二分查找(折半查找)
#include <stdio.h>#include<stdlib.h>int BinarySearch( int a[], int X ){ int low=1,high=10,mid; while(low<=high){ mid=(high+low)/2; if(a[mid]>X) high-=1; else if(a[mid]<X) low+=1; else return m原创 2021-03-28 13:34:39 · 162 阅读 · 0 评论 -
C语言希尔排序
简单插入排序的改进版。简单插入排序对数据少/基本有序时很有效,因此通过将序列进行分组排序使得每组容量变小,再进行分组排序,然后进行一次简单插入排序即可。分组是跳跃分组,逐渐缩小增量。按组进行插入排序操作,增量为1时,只需微调即可结束。void shellsort(int a[],int n){ int j; for(int gap=n/2;gap>0;gap/=2){ for(int i=gap;i<n;i++){ int t=a[i]; for(j=i-gap;t<原创 2021-03-28 09:27:06 · 132 阅读 · 0 评论 -
C语言简单选择排序
最坏情况下,即待排序记录初始状态是按第一条记录最大,之后的记录从大到小顺序排列,则需要移动记录的次数最多为3(n-1)。简单选择排序过程中需要进行的比较次数与初始状态下待排序的记录序列的排列情况无关。当i=1时,需进行n-1次比较;当i=2时,需进行n-2次比较;依次类推,共需要进行的比较次数是(n-1)+(n-2)+…+2+1=n(n-1)/2,即进行比较操作的时间复杂度为O(n^2),进行移动操作的时间复杂度为O(n)。#include <stdio.h>void swap(int *a原创 2021-03-27 14:04:42 · 393 阅读 · 0 评论 -
C语言冒泡排序的优化
冒泡排序的优化//把最大(小)的元素移动到首位。//冒泡排序的优化//优化:让已有的算法更加快速、省时,省空间冒泡排序的优化//把最大(小)的元素移动到首位。//冒泡排序的优化//优化:让已有的算法更加快速、省时,省空间#include <stdio.h>void bubble(int a[],int n){ for(int i=0;i<n;i++){ int flag=1; for(int j=0;j<n-1-i;j++){//第i个数只需要排n-1-i次原创 2021-03-25 22:30:31 · 397 阅读 · 0 评论 -
C语言数组和指针的区别
Dennis M. Ritchie的文章(Chistory)https://www.bell-labs.com/usr/dmr/www/chist.htmlProblems became evident when I tried to extend the type notation, especially to add structured (record) types. Structures, it seemed, should map in an intuitive way onto memory原创 2021-03-22 19:59:36 · 3083 阅读 · 0 评论 -
字符数组和字符串的区别,C语言字符数组和字符串区别详解
C 语言中并不存在字符串这个数据类型,而是使用字符数组来保存字符串。那么,字符数组就一定是字符串吗?对于这个问题,大多教科书中的回答是“是”。其实不然,字符数组和字符串是完全不相同的两个概念,千万不要混淆。分析如下所示的示例代码。#include <stdio.h>#include <string.h>int main(void){ /*字符数组赋初值*/ char cArr[] = {'I','L','O','V','E','C'}; /*字符串赋原创 2021-03-22 19:06:38 · 17049 阅读 · 4 评论