数据结构与算法
文章平均质量分 60
拉垮的我
吼吼,拉垮啊
展开
-
Python实现二分查找算法
二分查找二分查找又叫折半查找,二分查找应该属于减治技术的成功应用。所谓减治法,就是将原问题分解成若干个子问题后,利用了规模为n的原问题的解与较小规模(通常是n/2)的子问题的解之间的关系。 二分查找利用了记录按关键码有序的特点,其基本思想为:在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键码相等,则查找成功;若给定值小于中间记录的关键码,则在中间记录的左半边继续查找;若给定值大于中间记原创 2015-08-21 23:03:14 · 20173 阅读 · 4 评论 -
快排
以前也不少次写快排算法,但很久没用,基本快忘记是怎么一回事了,正好最近正在学习相关知识,遂决定把之前快忘记的东西重新捡回来。 快速排序(Quicksort)是对冒泡排序的改进版,基于分治技术的重要排序算法,也是实际工作中比较常用的一种优秀的排序算法,速度快、效率高。快速排序的分治策略: 快排算法java实现快速排序Python实现快速排序原创 2015-08-30 09:05:42 · 1139 阅读 · 0 评论 -
Python 实现递归算法
递归算法1、递归的定义 递归就是子程序(或函数)直接调用自己或通过一系列调用语句间接调用自己,是一种描述问题和解决问题的基本方法。 递归常与分治思想同时使用,能产生许多高校的算法。递归常用来解决结构相似的问题。所谓结构相似,是指构成原问题的子问题与原问题在结构上相似,可以Python实现递归算法阶乘的递归算法汉诺塔递归算法斐波拉契数列递归算法排列组合原创 2015-08-24 20:35:04 · 57681 阅读 · 2 评论 -
Python 冒泡排序
冒泡排序(Bubble Sort),是一种较简单的排序算法。冒泡排序算法原理: 开始时扫描整个序列,在扫描过程中两两比较相邻记录,如果第一个数比第二个数大,就交换他们,这样第一趟下来,最大的记录就会被“沉到”序列的最后面一个位置,第二趟开始扫描除了最后一个元素中的第二大记录并“沉到”倒数第二个位置,重复上述操作,直到n - 1扫描后,整个序列就排好序了。如下图所示:Python实现冒泡核心代码如下原创 2015-09-13 19:02:45 · 2389 阅读 · 0 评论 -
Python 实现栈
栈(stacks)是一种只能通过访问其栈尾来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIFO)的特征。 下面是python实现栈的代码:#!/usr/bin/python#coding=utf-8class Stack(object) : def __init__(self,size): #类的构造函数 self.size = s原创 2015-09-13 09:53:11 · 4582 阅读 · 1 评论 -
Python 实现队列
虽然Python有自己的队列模块,我们只需要在使用时引入该模块就行,但是为了更好的理解队列,自己将队列实现了一下。 队列是一种数据结构,它的特点是先进先出,也就是说队尾添加一个元素,队头移除一个元素,类似于商场排队结账,先来的人先接账,后来的排在队尾。在我们日常生活中,发送短信就会用到队列。下面是Python实现队列的代码:#!/usr/bin/python#coding=utf-8class原创 2015-09-13 09:22:16 · 5881 阅读 · 0 评论