数据结构与算法
爱问西瓜爱大树
这个作者很懒,什么都没留下…
展开
-
C++实现快速排序
思想1.在待排序的元素任取一个元素作为基准(通常选第一个元素,但最的选择方法是从待排序元素中随机选取一个作为基准),称为基准元素; 2.对待排序的元素进行分区,将比基准元素大的元素放在它的右边,比其小的放在它的左边; 3.对左右两个分区重复以上步骤直到所有元素都是有序的。排序过程1、设置两个指针left和right,一个指向待排数组最左边,一个指向最右边2、把left指向的第一个元素取出来,作为基准元素,赋值给一个临时变量tmp,这样left所指向的位置就空出来了;3、将right指针原创 2020-12-21 17:28:38 · 2703 阅读 · 1 评论 -
python实现贪心算法经典案例
均分纸牌问题和最大整数问题的算法思路及python实现。原创 2020-05-14 22:13:33 · 1406 阅读 · 0 评论 -
C++实现队列
一、介绍队列(Queue),是一种线性存储结构。它有以下几个特点:(01) 队列中数据是按照"先进先出(FIFO, First-In-First-Out)"方式进出队列的。(02) 队列只允许在"队首"进行删除操作,而在"队尾"进行插入操作。队列通常包括的两种操作:入队列 和 出队列。二、实现C++的STL中本身就包含了list类,基本上该list类就能满足我们的需求,所以很少需要我们...转载 2020-03-05 10:31:18 · 687 阅读 · 0 评论 -
C++实现栈
栈(stack),是一种线性存储结构,它有以下几个特点: (01) 栈中数据是按照"后进先出(LIFO, Last In First Out)"方式进出栈的。 (02) 向栈中添加/删除数据时,只能从栈顶进行操作。栈通常包括的三种操作:push、peek、pop。 push – 向栈中添加元素。 peek – 返回栈顶元素。 pop – 返回并删除栈顶元素的操作。C++的...转载 2020-03-05 10:11:55 · 2568 阅读 · 0 评论 -
python 实现冒泡排序
#实现冒泡排序from numpy import *#冒泡排序主体def bubble_sort(a): n = len(a) for i in range(n-1): for j in range(n-i-1): if a[j]>a[j+1]: #两个元素交换 a[j]...原创 2019-12-09 15:12:47 · 115 阅读 · 0 评论