为了账号安全,请及时绑定邮箱和手机立即绑定

数据结构

新的一年,写一系列算法分享,名曰【算法杂谈】,此为序 原创

大家2017新年好:) 去年10月底,我在慕课网发布了一个新课程——算法与数据结构。其实思考做这样一个课程已经很久了。因为自己在本科的时候曾经参加过ACM,成绩还算可以;后来研究生毕业以后参与创业,经常和各式各样的创业团队和技术人打交道;由于自己的技术背景,也经常受邀参与一些创业团队的技术面试,让我“把把关”;更重要的是,我还一直保持着关注算法的热情...

2887浏览 80推荐 16评论

C语言常用排序算法集合

#include <stdio.h> #include <stdlib.h> #include <sys/time.h> #include <math.h> //选择排序 long selectSort(int* arr, int length) { struct timeval time1, time2; gettimeofday(&tim...

77浏览 3推荐 0评论

[硕.Love Python] QuickSort(快速排序) 原创

def partition(a, i, j): k = -1 while True: while k * (a[i] - a[j]) >= 0: if i == j: return i j += k a[i], a[j] = a[j], a[i] i, j, k = j, i - k, -k def qsort(a, i, j): if i < j: k = partition(a, ...

99浏览 1推荐 0评论

[硕.Love Python] MergeSort(归并排序) 原创

def merge(s, d, i, m, n): # merge [i, m) [m, n) j, k = m, i while i < m and j < n: if s[i] < s[j]: d[k] = s[i] i += 1 else: d[k] = s[j] j += 1 k += 1 while i < m: d[k] = s[i] i += 1 k += 1...

76浏览 1推荐 0评论

[硕.Love Python] BinarySearchTree(二叉

class Node(object): __slots__ = ['left', 'right', 'data'] def __init__(self, data, left=None, right=None): self.data = data self.left = left self.right = right def __str_...

150浏览 1推荐 0评论

归并排序详解(MergeSort)递归和非递归实现 原创

归并排序的概念及定义 归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。...

529浏览 9推荐 2评论

浅谈数据结构中树的逻辑结构(树的定义)

一、引入 树在我们生活中随处可见,当然除非你的生活环境比较特殊(沙漠等)。树有根,有树干、树枝、树叶。而我们今天要讨论的是数据结构中的树,它的结构和我们生活中的树几乎无异,下面我将为大家一一讲解树的定义及其存储结构。 二、树的定义 ①首先我们得确定一个概念,树是一个有限的集合,集合中的元素称为结点。 1、结点的个数为0:称为空树。 2、结点的个数为1:此节点称为根节点。 3、节点的个数大于1:则除...

166浏览 1推荐 0评论

基于MapReduce的蓄水池抽样 原创

最近在学习大数据相关的算法,写了很多关于算法方面的博文(怪咖科学),希望也能在慕课网上跟大家分享学习的一些技巧和经验。 问题:现在有一个很大的数据,假设有几千万条但不知道具体有多少条,如何在只遍历一次的情况下,随机取出其中K条数据? 思路: 1.可以将此问题抽象为蓄水池抽样问题。即,先把读取到的前K条数据放入列表中,对于第K+1个对象,以K/(K+1)的概率选择该对象;对于第K+2个对象,以K/(...

194浏览 2推荐 0评论

PHP后台核心框架、自定义扩展功能 直接上手做功能开发即可

喜欢就Star,不要Fork; 想要分享的动机才是驱动力,而技术仅仅是一种方法。 ====================== 万能后台——自定义扩展功能 基于TP5,在此感谢 要封装常用功能 main.js源代码、如初始化selector、空对象判断、重定向、modal、全局的ajax请求、js中加载js/css文件、数据验证、重写了alert弹出层、增加 弹出确认提示框...

11523浏览 9推荐 2评论

程序员必备技能-ubuntu安装qq 原创

安装的版本是国际版 1.安装依赖库 sudo apt-get install libgtk2.0-0:i386 sudo apt-get install lib32ncurses5 2.下载 下载链接: http://pan.baidu.com/s/1jIwKdXs http://linux.linuxidc.com/ 3.解压并安装wineqqintl 定位到该路径,然后再输入 sudo dpk...

906浏览 8推荐 0评论

Java程序员必须掌握的线程知识-Callable和Future 原创

Callable和Future出现的原因 创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕之后得到任务...

1115浏览 15推荐 0评论

程序员搭建自己的博客-Hexo写博客 原创

hexo配置github Git Install hexo-deployer-git. $ npm install hexo-deployer-git --save 配置_config.yml文件 deploy: type: git repo: repository url branch: [branch] message: [message] 选项描述 repo GitHub/Bitbucket...

940浏览 8推荐 0评论

Java多线程框架Executor详解 原创

为什么引入Executor线程池框架 new Thread()的缺点 每次new Thread()耗费性能 调用new Thread()创建的线程缺乏管理,被称为野线程,而且可以无限制创建,之间相互竞争,会导致过多占用系统资源导致系统瘫痪。 不利于扩展,比如如定时执行、定期执行、线程中断 采用线程池的优点 重用存在的线程,减少对象创建、消亡的开销,性能佳 可有效控制最大并发线程数,提高系统资源的使...

1225浏览 13推荐 0评论

Android fragment(片段)构建灵活的UI 原创

在以支持多种屏幕尺寸为目标设计应用时,您可以在不同的布局配置中重复使用您的fragment 从而根据可用的屏幕空间优化用户体验。 例如,在手机设备上,由于采用单窗格用户界面,因此可能更适合一次只显示一个fragment。 相反,由于平板电脑屏幕尺寸较大,可以为用户显示更多信息,因此最好将片段设计为并排显示。 图 以不同配置在不同屏幕尺寸的设备上为同一 Activity 显示的两个片段。在较大的屏幕...

220浏览 1推荐 0评论

Android中的语言和字符串资源 原创

在任何情况下,从您的应用代码中提取 UI 字符串并将其存放在外部文件中都是个好办法。Android 在每个 Android 项目中都提供一个资源目录,从而简化了这一过程。 如果您是使用 Android SDK 工具创建的项目(请阅读创建 Android 项目),工具会在项目的顶层创建一个 res/ 目录。此 res/ 目录中包含用于存放各类资源的子目录。此外,还包含几个默认文件(如 res/val...

227浏览 1推荐 0评论
首页上一页1234567下一页尾页

推荐作者

热门手记

意见反馈 常见问题 APP下载
官方微信