算法
jgl357
iOS开发,移动专家.java开发,让移动端开发更简洁
展开
-
排序算法(五):希尔排序
希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序总结来说就是把记录按步长 gap 分组,对每组记录采用直接插入排序方法进行排序。随着...原创 2019-11-27 10:38:06 · 549 阅读 · 0 评论 -
排序算法(四):简单插入排序
插入排序原理通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。假设第一个元素排序之后,后面的元素对排号的部分从后向前比较并逐一移动。它包括直接插入排序、二分插入排序(又称折半插入排序)、链表插入排序、希尔排序(又称缩小增量排序),属于稳定排序的一种(稳定排序,通俗的讲,就是两个相等的数不会叫唤位置)。下面介绍一下直接插入排序直接插入排序直接插入排序是...原创 2019-11-26 11:53:15 · 1262 阅读 · 0 评论 -
排序算法(三):简单选择排序
原理:它的工作原理是每一次从待排序的数据元素中选出最小(最大)的一个元素,存放在序列的起始位置,然后再从剩余未排序的元素中继续寻找最小(最大)元素,然后放在已排序序列的末尾。以此类推,直到全部待排序的元素排完。C语言代码实现选择排序// 选择排序O(n2):从循环找到最小的元素,与循环的起始位置交换-(void)selectSort:(NSMutableArray *)array{...原创 2019-11-19 16:11:24 · 234 阅读 · 0 评论 -
数据结构
1.数据结构的存储一般常用的有几种?各有什么特点?数据结构的存储一般常用的有两种:顺序存储结构和链式存储结构。顺序存储结构:比如数组,1-2-3-4-5-6-7-8-9-10,存储是按顺序的,再比如栈和队列等。 链式存储结构:链式存储结构是根据地址进行存储的,每一个存储数据后面跟着一个地址,并且存储形式不再是顺序的。2.集合结构 线性结构 树形结构 图形结构集合结构:一个集合,就是...原创 2019-10-31 18:20:39 · 1637 阅读 · 0 评论 -
排序算法:算法简介
算法简介●什么是算法 ➢一系列的计算步骤,用来将输入数据转化成输出结果●算法的意义 ➢用于解决特定的问题 ➢解决同一个问题的不同算法的效率常常相差非常大,这种差距的影响往往比硬件和软件方面的差距还要大● 比较常听到的较为简单的算法 ➢排序算法 ➢加密算法算法的特征● 有穷性 ➢执行有限个步骤之后终止...原创 2018-10-15 10:51:00 · 271 阅读 · 0 评论 -
排序算法(一):冒泡排序
冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复的走访过要排列的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,走访数列的工作是重复的进行直到没有有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列顶端,所以命名为冒泡排序。算法原理:冒泡排序算法的运作如下:(从后往前)1.比较相邻的元素。如...原创 2018-10-15 11:56:47 · 267 阅读 · 0 评论 -
排序算法(二):快速排序
快速排序(Quicksort)是对冒泡排序的一种改进。他的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程中可以递归进行,以此达到整个数据变成有序序列。基本思想:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到...原创 2019-11-25 15:08:31 · 315 阅读 · 0 评论