
算法与数据结构
算法与数据结构
soulsoul_god
慢一点,当你理解的越多,需要记得就越少。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二分查找
有序数据,若无序,需要先排序。非递归:#include <stdio.h>#include <string.h>#include <stdlib.h>void binarySearch(int a[], int value , int low, int high){ while(low <= high) { int mid = (high + low)/2; if(a[mid] == value.原创 2021-04-23 13:40:22 · 146 阅读 · 0 评论 -
顺序查找
#include <stdio.h>#include <string.h>#include <stdlib.h>void sequenceSearch(int a[], int length, int k){ int i = 0; for(i = 0; i < length; ++i) { if(a[i] == k) printf("i:%d\n", i); } retur.原创 2021-04-23 11:22:43 · 129 阅读 · 0 评论 -
插入排序
#include <stdio.h>#include <string.h>#include <stdlib.h>void insertSort(int a[5], int length){ int i, j = 0; for(i = 1; i < length; ++i) { int temp = a[i]; for(j = i - 1; j >= 0; --j) { .原创 2021-04-22 17:03:31 · 151 阅读 · 0 评论 -
选择排序
#include <stdio.h>#include <string.h>#include <stdlib.h>void selectionSort(int a[5], int length){ int i, j = 0; int min = 0; for(i = 0; i < length -1 ; ++i) { min = i; for(j = i + 1; j < length.原创 2021-04-22 16:28:48 · 106 阅读 · 0 评论 -
冒泡排序
#include <stdio.h>#include <string.h>#include <stdlib.h>void bubbleSort(int a[5], int length){ int i, j = 0; for(i = 0; i < length - 1; ++i) { //for(j = 0; j < length - 1; ++j) for(j = 0; j < len.原创 2021-04-22 15:55:16 · 104 阅读 · 0 评论 -
快速排序
快速排序原理:选取一个数作为基准数,一般选取第一个数,大于基准数的数据放到基准数的后面,小于基准数的数据放到基准数的前面,第一次排序完成之后,基准数的前面都是小于其的数,后面都是大于其的数。然后将前面、后面的数据分别作为一个新的序列按照这种方式重新排序。比如一段数据:6,1,2,7,9,3,4,5,10,8数据6作为基准数,选取i,j变量,j从后往前查找,找到第一个小于6的数据,这里是5,i从前往后查找,找到第一个大于6的数据,这里是7,将5,7交换位置。6,1,2,5,9,3,4.原创 2021-01-06 18:33:45 · 164 阅读 · 0 评论 -
单链表
/*** 说明:本程序实现了一个具有头结点的单链表。*/#include "stdio.h"#include "stdlib.h"#include "malloc.h"//5个常量定义#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -1//类型定义typedef int Status;typedef int ElemType;//测试程序长度定义#define LONG.原创 2021-01-06 18:32:11 · 231 阅读 · 0 评论 -
数据结构-用数组实现栈
栈结构体:数组或者指针,用于存放栈数据,指针的话需要分配空间栈顶位置,用于记录当前栈顶在哪栈的大小typedef struct{ ElemType *elem; int top; int size;}STACK_SQ;//初始化栈,给栈分配空间,初始值,成功返回true,出错返回falsebool InitStack(STACK_SQ &sq, int size);//入栈,需要判断是否已达栈顶,如果达到栈顶,退出。成功返回true,出错原创 2021-01-06 18:28:30 · 220 阅读 · 0 评论 -
leetcode-算法-Excel表列名称
1、简单题-Excel表列名称给定一个正整数,返回它在 Excel 表中相对应的列名称。例如, 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB ...示例1:输入: 1输出: "A"示例2:输入: 28输出: "AB"示例3:输入: 701输出: "ZY"解答:/*A = 1AA = 2...原创 2020-08-25 14:18:26 · 241 阅读 · 1 评论 -
C语言-双向循环链表
功能:实现双向循环链表做数据插入,删除使用#include <stdio.h>#include <stdlib.h>#include <string.h>#define RET_OK 1#define RET_ERROR 0#define UDPLEN 1024//链表的类型typedef struct LNode { char ...原创 2020-03-18 15:31:15 · 230 阅读 · 0 评论 -
数据结构-用数组实现队列
队列的定义:队列是一种特殊的线性表,只允许在表的头部(front处)进行删除操作,在表的尾部(rear处)进行插入操作的线性数据结构,这种结构就叫做队列。进行插入操作的一端称为队尾,进行删除操作的一端称为队头。数组实现的队列会定义一段空间用于存放数据,另外一个front队头指针,一个rear队尾指针,队头指针指向队列的第一个元素,队尾指针指向队列最后一个元素的下一位。数据入队列时,队尾指针增加...原创 2019-06-16 16:41:16 · 303 阅读 · 0 评论 -
数据结构-用链表实现栈
用链表的方式实现栈栈结构体:typedef struct stack{ int value; //存放数据 struct stack *next; //指向下一个节点}STACK_LIST;接口://建立空栈,确定head节点STACK_LIST *CreateNewStack();//判断栈是否为空bool IsEmptySta...原创 2019-06-14 15:49:08 · 453 阅读 · 0 评论 -
数据结构-栈
栈的简介栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。具有后进先出(Last In First Out)特性栈的基本操作具有:初始化栈,入栈,出栈,判断栈是否空,获取栈顶数据,获取栈的元素个数,清空栈,销毁栈顺序结构实现栈:栈的结构体设计:typedef struct{ElemType *elem; //数组或者指针,用...原创 2019-06-14 10:45:19 · 139 阅读 · 0 评论