数据结构
湾区人工智能
会多国语言的海归
展开
-
LeetCode中二叉树题目总结
本文仅为博主个人总结,水平有限,欢迎大神指出不妥处。来自https://www.cnblogs.com/love-yh/p/7248136.html 关于二叉树的相关概念可以参见二叉树的百度百科,或binary tree Wiki。二叉树结点类的常见定义为:1 /* Definition for a binary tree node. */2 struct TreeNode 3 {4...转载 2018-06-06 16:20:14 · 406 阅读 · 0 评论 -
堆和栈的区别(转过无数次的文章)
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类...转载 2018-10-03 13:14:14 · 183 阅读 · 0 评论 -
内存中的栈空间与堆空间
内存中的栈空间与堆空间https://www.jiuzhang.com/tutorial/algorithm/352我们通常所说的内存空间,包含了两个部分:栈空间(Stack space)和堆空间(Heap space)当一个程序在执行的时候,操作系统为了让进程可以使用一些固定的不被其他进程侵占的空间用于进行函数调用,递归等操作,会开辟一个固定大小的空间(比如 8M)给一个进程使用。这个...转载 2018-10-04 17:24:51 · 944 阅读 · 0 评论 -
栈中pop和top的区别是什么呢?用队列实现一个栈,Python语言
区别: pop是弹出栈顶元素,top是获得栈顶元素,不弹出 pop弹出后可以获取,把弹出的东西付给某个变量 具体可以通过用队列实现一个栈来分析原因。#用队列实现栈class Stack: """ @param: x: An integer @return: nothing """ def __init__(self): ...原创 2018-10-30 13:59:20 · 11431 阅读 · 0 评论 -
快速排序总结,Python版
快速排序是面试最常考内容,让你描述算法,让你写算法,让你分析时间复杂度 #快速排序整理'''九章算法令狐冲老师排序思路:先取到中心index对应的数组值循环从左边找到第一个比中间值大的数字循环从右边找到第一个比中间值小的数字然后交换这两个数字最后分别对左右两个部分重复以上思路'''def quickSort(arr): if not arr: ...转载 2018-11-18 09:38:24 · 604 阅读 · 0 评论 -
快速排序和归并排序的区别,Python代码实现
排序理念比较: 归并排序merge sort思路:归并排序中间劈一刀,两边再排序,然后把左右两个合并。就是先局部有序,再整体有序。快速排序思路:随便选择一个数字作为中间点,小于放在左边,大于放在右边。递归对左右两个部分排序。就是先整体有序,后局部有序。 归并排序优缺点优点:容易掌握,用处广泛。分治思想很重要缺点:花费O(n)的额外空间,因为要合并两个数组,不可能...转载 2018-11-18 10:56:04 · 2647 阅读 · 1 评论 -
快速排序,快速选择排序,选择排序的区别
选择排序是对整体序列进行排序快速排序也是对整体序列进行排序 快速选择算法是快速在未排序的数组中寻找第k小/大的元素快速选择算法和快速排序的思想是找基准点 , 在基准点左边的都比他小,然后在基准点右边的都比大这样但是这两个算法的目的不同所以实现起来会有不同 快速选择算法只要选择一侧进行迭代就好了 快速排序要两侧都迭代 选择排序:保持最小元素在最左侧,用最左侧的元...转载 2018-11-18 15:46:41 · 3274 阅读 · 0 评论 -
《数据结构与算法 Python语言描述》 读书笔记
已经发布博客《数据结构与算法 Python语言描述》 读书笔记 第二章 抽象数据类型和Python类2.1 抽象数据类型abstract data type:ADT 2.1.1使用编程语言提供的数据组合机制(元组,列表等)对处理复杂程序里的数据组织问题是不够的。 2.1.2 抽象数据类型的概念把数据定义为抽象的对象集合,为他们定义合法操作,不暴露内部实现细节。...转载 2018-11-18 15:54:14 · 1036 阅读 · 0 评论 -
归并排序Python代码
归并排序是面试最常考内容,让你描述算法,让你写算法,让你分析时间复杂度 归并排序merge sort思路:归并排序中间劈一刀,数组分两半,两边排好序,最后把左右两个合并。就是先局部有序,再整体有序。 时间复杂度归并排序复杂度最好,最坏,平均都是nlogn。是严格的nlogn复杂度。空间复杂度归并排序需要额外的O(N)空间,因为要合并两个数组,不可能在原地...转载 2018-11-18 14:21:02 · 1009 阅读 · 0 评论