- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 菜鸟学习算法:递归实现排序算法
十大经典排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序、堆排序、计数排序、桶排序、基数排序。稳定的排序算法有:冒泡排序、插入排序、归并排序、计数排序、桶排序、基数排序。1. 冒泡排序文字太多反而让人难以理解,先看一张图冒泡排序就是两两比较,一趟冒泡排序结束后,最大的一个数就交换到最后的位置。接下来我们在n-1,n-2......2,继续执行和第一趟排序的一样操作即可。代码实现:先定义一个经典的交换算法void swap(int arr[], in...
2020-07-22 15:47:21 2532 1
原创 数据结构系列之二单链表
1.知识点回顾顺序表和单链表区别: 顺序表:(1)特点:长度固定且需要分配一段连续的存储空间,存储密度大,可以使用倍增(具体方法就是判断当前元素如果达到最大,重新开辟2*N的空间,如果当前元素为空间的1/4,可以缩小原来空间至1/2,每次操作的同时要复制原来的旧的元素到新的存储空间中)的方法来动态扩容,将顺序表变成"可变长度"。(2)优点:便于随机访问,时间复制度O(1)。(3)缺点:插入和删除需要移动大量的元素,时间复制度O(n)。 单链表:(1)特点:长度不固定...
2020-07-17 17:23:03 369
原创 数据结构系列之一顺序表
本系列课程主要介绍数据结构的一些知识,其实网上也有很多视频和详细的教程,笔者最近想找一些算法岗位,发现很多公司笔都是考字符串算法操作、数据结构(线性表、栈、队列、图,树)、动态规划、贪心算法、高级数据结构(字典树、线段树)等。线性表1.1 什么是线性表 从逻辑上来看,线性表是有n(n>=0)个数据元素组成的有序序列,线性表中元素的个数n(n>=0)定义为线性表的长度,n=0时称为空表。对于一个非空的线性表,其机构特征如下:(1)有且仅有一个开始结点,该结点没有直...
2020-07-13 10:13:46 304
原创 菜鸟学习算法:随机生成互不相等的数
最近在写单机版客户端服务器列表展示时遇到随机选取服务器列表的问题,正常情况下服务器列表是服务器返回给客户端(比如服务器定义:proto_gc_server_list_noti(message),当客户端登录时,收到该协议后进行服务器列表展示)本文没有写客户端与服务器交互,只单机实现客户端展示服务器列表,客户端定义一个字符串或者写到.txt/.csv形成一个配置文件(好比我们在玩手游创建人物的时候,有的游戏会随机给玩家一些游戏昵称)本文主要随机选取字符串中昵称展示到客户端,并保证展示的文字没有重复,字
2020-06-19 09:12:20 529
原创 Lua随笔系列一:Lua克隆
在写Lua客户端时,有时我们从服务器返回得到数据时,本地想拿到一份数据的克隆,后续操作克隆的数据这样也不会改变原来数据的值。--lua克隆function clone(object) local lookup_table = {} local function _copy(object) if type(object) ~= "table" then return object elseif lookup_table[objec
2020-06-02 17:24:46 521
原创 Lua随笔系列一:数组有序
最近会写一些Lua在项目中用到的和平时遇到的一些算法之类的文章,笔者也是菜鸟小白一枚,如果有错误的地方还请多多指点。题目描述:判断一个数组是否有序,数组中0可以用来补差值算法步骤:1.数组为nil直接返回false2.数组不为nil,如果数组只包含一个元素肯定有序,如果包含2个及以上需要进行判定(a.如果数组元素都为0则肯定有序,如果不全为0,则需要进行判定)3.正常判定流程,先将数组排序,计算出0的个数(用zeroCount表示)和第一个非0元素的索引(用numIndex表示),之后就
2020-06-02 13:11:03 725
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人