- 博客(11)
- 收藏
- 关注
原创 C语言单链表删除包含某个值的所有节点
/* 删除包含某个值得所有节点,思路遍历计算出该值 出现的次数,然后写个大循环在里面处理值所在的节点在头部,中间,尾部的情况*/struct llist_node* llist_delete(struct llist_node* head, int value){ struct llist_node* tmp = head; struct llist_node* pt...
2020-04-27 22:03:26 1714
原创 简单选择排序
简单选择排序思路:每一趟在n-i+1 个记录中选取关键字最小的记录作为有序序列中的第i 个记录。实现步骤:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。重复第二步,直到所有元素均排序完毕时间复杂度为O(n^2)#include<stdio.h>void select_sort(int b[], int length);int main(){ int length = 0;
2020-08-08 16:31:11 161
原创 快速排序C语言
快速排序是对气泡排序的一种改进,思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以此达到整个序列有序。具体做法为:先将枢轴记录存起来,附设两个指针low和high,初值分别为low high,设枢轴记录的关键字为pivotkey,则首先从high所指位置起向前搜索找到第一个小于pivotkey的关键字记录移到低端,然后从low 所指位置起向后搜索,找到关键字大于pivotkey 的记录移动到高端,重复这两步骤直至lo
2020-08-08 10:34:52 272
原创 直接插入排序
直接插入排序思路:一般情况下,第i 趟直接插入排序的操作为: 在含有i-1 个记录的有序子序列r[1…i-1]中插入一个记录r[i] 后,变成含有i个记录的有序子序列人r[1,i];并且,和顺序查找类似,为了在查找插入位置的过程中避免数组越界,在人r[0]处设置监视哨。在自i-1 起往前搜索的过程中,可以同时后移记录。整个排序过程为进行n-1趟插入,即:先将序列中的第一个记录看成是一个有序的子序列,然后从第二个记录起逐个进行插入,直至整个序列变成按关键字非递减有序列为止。直接插入排序的时间复杂度为0(n
2020-08-01 11:33:45 272
原创 git 常用命令
git clone https://github.com/c005machao5/machao.gitgit romote add orgin https://github.com/c005machao5/machao.gitgit config --global user.namegit config --global user.emailgit add ./TESTgit statusgit commit -m "第一次提交"git push -f origin mastergi...
2020-07-04 17:48:52 94
原创 C语言二叉树建立及前序、中序、后序遍历,叶子节点,深度
struct BiTNode {int val;struct BiTNode* lchild;struct BiTNode* rchild;};//树的构建 思路递归方法struct BiTNode* Create(){int val;scanf_s("%d", &val);struct BiTNode* root = (struct BiTNode*)malloc(...
2020-05-06 22:21:55 380
原创 循环链表与双向链表
struct llist_node* create_llist_Circular(int number){struct llist_node* head = NULL;int value = 1;head = (struct llist_node*)malloc(sizeof(struct llist_node));head->value = value++;head->n...
2020-05-03 16:12:36 123
原创 C语言链表排序
struct llist_node* llist_sort(struct llist_node* head){struct llist_node* tmp = head;struct llist_node* begin = head;if (head==NULL&&head->next==NULL){ return head;}while (begin){...
2020-04-30 19:19:05 1400
原创 C 语言大小端
在计算机中存在两种字节序:大端和小端,大端是指计算机中表示一个数时高位在前,低位在后,也就是说低地址存放数据的高位部分,而高地址存放数据的低位部 分union world {int a;char b;};void print_litter(){union world c;c.a = 1;if (c.b == 1){printf(“litter\n”);}else if (...
2020-04-30 19:16:07 116
原创 C语言单链表
C与C++学习1.冒泡排序2.单链表(一)常见操作创建,遍历,逆序,释放#include<stdio.h>#include<malloc.h>/*struct llist/struct llist_node {int value;struct llist_node next;};/*create single llist/struct llis...
2020-04-25 16:13:27 144
原创 C语言 冒泡排序
基本步骤:1、外循环是遍历每个元素,每次都放置好一个元素; 2、内循环是比较相邻的两个元素,把大的元素交换到后面;3、等到第一步中循环好了以后也就说明全部元素排序好了;代码实现#include<stdio.h>//打印数组元素void print_array(int *array, int length){ i...
2020-04-22 21:52:53 119
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人