数据结构
文章平均质量分 50
__小柒
小柒会好好敲代码的~
展开
-
算法---分治策略(快排)
分治策略之快速排序快速排序是对冒泡排序算法的一种改进,快速排序在面试过程中被提到的概率还是很大的,本文章我将介绍一下有关快速排序的一些问题。算法思想(1)指定一个定界值,通过该值会将数组分成两部分(2)将大于定界值的数据都放在右边,小于等于定界值的数据都放在左边,此时,以定界值为中心,左边全部都是小于等于定界值的数,右边全部都是大于定界值的数(3)将左边的数据拿出来,又重新找一个定界值,重复上面的操作。右边的值也是相同的操作。(4)可见,上面的操作是一个递归的过程,等左右两边的数据都进行完毕,即原创 2021-10-06 14:30:24 · 338 阅读 · 1 评论 -
算法---分治策略(二分查找)
一、二分查找二分查找也成为二分折半查找,在有序的数组中(数据量较大)查找一个数据速度是很快的,类似于二分查找的思想在生活中也是处处可见的。就比如说猜数字游戏:在1-100之间猜到对方想到的数字首先说56,对方说小了,那么接下来你说出数字的范围肯定就在57-100之间再一次78,对方说大了,那么接下来就要在57-77之间…次数范围说出的数据实际数字第一次0-1005660第二次57-1007860第三次57-776560…………原创 2021-10-04 08:00:00 · 992 阅读 · 1 评论 -
基础数据结构---队列
文章目录queue头文件queue.cpp文件queue头文件#pragma once//队列:先进后出的一种线性结构,入队(插入)的一端称为队尾,出队(删除)的一端称为队头//队列的存储方式有两种,一种为顺序结构(顺序队列),另一种为链式结构(链式队列)//顺序队列一定会设计成环形队列,原因是线性队列的入队为O(1),出队为O(n)//环形队列的入队为O(1),出队为O(1)//满:尾指针再走一步就到头指针;浪费一个空间不实用,主要是为了区分空和满的情况//顺序队列主要理解两点设计:1原创 2021-10-02 08:00:00 · 107 阅读 · 4 评论 -
基础数据结构---八大排序
文章目录1.(简单)直接插入排序2.希尔(shell)排序3.冒泡排序4.快速排序5.选择排序6.堆排序7.归并排序8.基数排序排序 : 笔试和面试的重点.1.算法描述;2.实现;3.效率分析(时间复杂度,空间复杂度,稳定性)难点 : 排序算法太多稳定性 : 针对关键字相同的数据(相同的数字),排序前如果A在A’的前面,排序后还能保证A在A’的前面则算法稳定,否则不稳定;有没有跳跃的交换数据,有则不稳定,没有则稳定第一个排序:(简单)直接插入排序.特点 数据越有序越快,完全有序则为O(n)第二个排原创 2021-10-03 08:00:00 · 335 阅读 · 2 评论 -
基础数据结构---栈
文章目录stack头文件stack.cpp文件stack头文件#pragma once//栈:后进先出,后来反而需要先服务 (访问受限的线性表)//栈分为顺序栈,链式栈//本文件为不定长顺序栈,能自动扩容//栈只能在一端进行插入和删除,插入和删除的这一端称为栈顶,另一端称为栈底//顺序栈的栈顶在尾部,因为入栈和出栈的时间复杂度都为O(1)#define INIT_SIZE 10typedef struct Stack{ int* base;//指向动态内存 int stac原创 2021-10-01 08:00:00 · 118 阅读 · 2 评论 -
基础数据结构---顺序表(静态链表实现)
文章目录slist头文件slist.cpp文件slist头文件#pragma once//静态链表,利用顺序表模拟链表//静态链表保护两条链表,一条为有效数据链表,另一条为空闲节点链表//有效数据链表为带头结点的循环链表,且头结点在0下标//空闲节点链表为带头结点的循环链表,且头结点在1下标//注意,添加一条空闲节点链表的目的是让插入数据时找空闲节点的速度变为O(1)//静态链表的优点:和顺序表对比,插入和删除数据时不需要移动数据O(1)//静态链表的优点:和链表对比,不需要频繁的创建和删原创 2021-09-30 19:00:00 · 212 阅读 · 0 评论 -
基础数据结构---顺序表(链式结构实现)
文章目录1.带头节点的单链表list头文件list.cpp文件2.带头结点的双向链表dlist头文件dlist.cpp文件3.带头结点的循环链表clist头文件clist.cpp文件1.带头节点的单链表list头文件#pragma once//带头节点的单链表//头节点:不用于存储数据,只是起标记作用//单链表:尾节点的next为空typedef struct Node{ int data;//数据域 struct Node* next;//后继指针}Node, * List; /原创 2021-09-30 12:00:00 · 84 阅读 · 0 评论 -
基础数据结构---顺序表(顺序结构实现)
文章目录固定长度的顺序表sqlist头文件sqlist .cpp文件固定不长度的顺序表dsqlist头文件dsqlist .cpp文件固定长度的顺序表sqlist头文件#pragma once //预防头文件被重复引用//顺序表,固定长度(非常简单,不实用)typedef struct SQList{ int elem[10];//存放数据,固定长度为10 int length;//有效数据的个数}SQList, * PSQList;//typedef struct S原创 2021-09-29 19:58:31 · 84 阅读 · 0 评论