算法与数据结构
文章平均质量分 56
Erice_e
那个人好像一条狗啊
展开
-
温故知新 算法的时间复杂度
算法的时间复杂度求解算法的时间复杂度的具体步骤是: ⑴ 找出算法中的基本语句; 算法中执行次数最多的那条语句就是基本语句,通常是最内层循环的循环体。 ⑵ 计算基本语句的执行次数的数量级; 只需计算基本语句执行次数的数量级,这就意味着只要保证基本语句执行次数的函数中的最高次幂正确即可,可以忽略所有低次幂和最高次幂的系数。这样能够简化算法分析,并且使注意力集中在最重原创 2017-06-07 16:25:45 · 385 阅读 · 0 评论 -
算法分析-快速排序
今天我们来说说快速排序算法,快速排序,采用分治的思想,可以算是一种经典的算法 ,由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用。在平均状况下,排序N个项目要 O(N*logN)次比较,在最坏的情况下,则需要比较O(n2)次比较。最好情况,每次划分所取的基准都是当前无序区的”中值”记录,划分的结果是基准的左、右两个无序子区间的长度大致相等。总的关键字比较次数:O(nlgn原创 2017-06-20 13:26:08 · 1892 阅读 · 0 评论 -
堆排序
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节转载 2017-06-21 17:01:45 · 277 阅读 · 0 评论 -
算法分析 - 桶式排序
桶式排序 在我们生活的这个世界中到处都是被排序过的东东。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……总之很多东东都需要排序,可以说排序是无处不在。现在我们举个具体的例子来介绍一下排序算法。特点 1.桶排序是稳定的 2.桶排序是常见排序里最快的一种,比快排还要快…大多数情况下 3.桶排序非 常快,但是同时也非原创 2017-06-12 19:12:20 · 407 阅读 · 0 评论 -
数据结构 合集
本文对常用的数据结构:Array, ArrayList,List,IList,ICollection, Stack, Queue, HashTable, Dictionary, IQueryable, IEnumerable等进行详述。一、Collection(集合)Collection是数据记录集合,编写代码过程中,常常需要合适的容器保存临时数据,方便修改和查找,如何选取合适转载 2017-08-08 09:49:04 · 329 阅读 · 0 评论 -
熟悉常见算法
iOS面试中熟悉常见算法1、 对以下一组数据进行降序排序(冒泡排序)。“24,17,85,13,9,54,76,45,5,63”int main(int argc, char *argv[]) { int array[10] = {24, 17, 85, 13, 9, 54, 76, 45, 5, 63}; int num = sizeof(array)/size原创 2017-09-21 10:05:47 · 789 阅读 · 2 评论 -
插入排序 代码
int optimizationInsertionSort(){ int arry[] = {3,5,6,9,4,1,2,7,8}; int len = sizeof(arry)/sizeof(arry[0]); int i,j,temp; for (i = 1; i<len; i++) { temp = arry[...原创 2018-06-14 17:24:59 · 277 阅读 · 0 评论