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

数据结构

C++实现之快速排序的两种不同做法

快速排序(C++实现) 快速排序在我们程序的世界当中是非常常见的;在以后的应聘当中更是一道基本上必考的排序题; 那么快速排序有两种写法;其实这两种写法本质是一样的;只是第二种写法更为通俗易懂; 写法一: #include <iostream> using namespace std; void quickSort(int* arr, int start, int end) { if (...

4浏览 1推荐 0评论

【算法杂谈 1】 从一道面试题再看三路快排partition 原创

在这次分享中,我将为大家回顾一下排序算法,同时,详细解析一下LeetCode中第75个问题:Sort Color。这个问题是Facebook,Microsoft和Pocket Gems的面试题。在LeetCode中难度标记为Medium:) 在我的课程算法与数据结构中,我向大家详细介绍了快速排序这个最经典的排序算法。在这里为大家简单复习一下,没有学习这门课程的同学,也可以简单看到一个轮廓。 快速排...

2587浏览 29推荐 2评论

[硕.Love Python] FibonacciHeap(F堆 &a 原创

class Node(object): __slots__ = [ 'data', 'child', 'left', 'right', 'degree', 'parent', 'childCut', ] def __init__(self, data): se...

337浏览 1推荐 0评论

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

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

3539浏览 99推荐 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...

171浏览 5推荐 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, ...

154浏览 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...

132浏览 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_...

215浏览 1推荐 0评论

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

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

659浏览 10推荐 2评论

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

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

217浏览 1推荐 0评论

基于MapReduce的蓄水池抽样 原创

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

242浏览 3推荐 0评论

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

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

11606浏览 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...

962浏览 8推荐 0评论

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

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

1201浏览 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...

1030浏览 8推荐 0评论
首页上一页1234567下一页尾页

推荐作者

热门手记

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