算法
starfromhere
这个作者很懒,什么都没留下…
展开
-
菜鸟学习算法:递归实现排序算法
十大经典排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序、堆排序、计数排序、桶排序、基数排序。稳定的排序算法有:冒泡排序、插入排序、归并排序、计数排序、桶排序、基数排序。1. 冒泡排序文字太多反而让人难以理解,先看一张图冒泡排序就是两两比较,一趟冒泡排序结束后,最大的一个数就交换到最后的位置。接下来我们在n-1,n-2......2,继续执行和第一趟排序的一样操作即可。代码实现:先定义一个经典的交换算法void swap(int arr[], in...原创 2020-07-22 15:47:21 · 2470 阅读 · 1 评论 -
数据结构系列之二单链表
1.知识点回顾顺序表和单链表区别: 顺序表:(1)特点:长度固定且需要分配一段连续的存储空间,存储密度大,可以使用倍增(具体方法就是判断当前元素如果达到最大,重新开辟2*N的空间,如果当前元素为空间的1/4,可以缩小原来空间至1/2,每次操作的同时要复制原来的旧的元素到新的存储空间中)的方法来动态扩容,将顺序表变成"可变长度"。(2)优点:便于随机访问,时间复制度O(1)。(3)缺点:插入和删除需要移动大量的元素,时间复制度O(n)。 单链表:(1)特点:长度不固定...原创 2020-07-17 17:23:03 · 336 阅读 · 0 评论 -
数据结构系列之一顺序表
本系列课程主要介绍数据结构的一些知识,其实网上也有很多视频和详细的教程,笔者最近想找一些算法岗位,发现很多公司笔都是考字符串算法操作、数据结构(线性表、栈、队列、图,树)、动态规划、贪心算法、高级数据结构(字典树、线段树)等。线性表1.1 什么是线性表 从逻辑上来看,线性表是有n(n>=0)个数据元素组成的有序序列,线性表中元素的个数n(n>=0)定义为线性表的长度,n=0时称为空表。对于一个非空的线性表,其机构特征如下:(1)有且仅有一个开始结点,该结点没有直...原创 2020-07-13 10:13:46 · 283 阅读 · 0 评论 -
菜鸟学习算法:随机生成互不相等的数
最近在写单机版客户端服务器列表展示时遇到随机选取服务器列表的问题,正常情况下服务器列表是服务器返回给客户端(比如服务器定义:proto_gc_server_list_noti(message),当客户端登录时,收到该协议后进行服务器列表展示)本文没有写客户端与服务器交互,只单机实现客户端展示服务器列表,客户端定义一个字符串或者写到.txt/.csv形成一个配置文件(好比我们在玩手游创建人物的时候,有的游戏会随机给玩家一些游戏昵称)本文主要随机选取字符串中昵称展示到客户端,并保证展示的文字没有重复,字原创 2020-06-19 09:12:20 · 505 阅读 · 0 评论