自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

明月清風

自強弘毅,求是拓新

  • 博客(100)
  • 资源 (9)
  • 收藏
  • 关注

原创 python实现首字散列其余二分的字典树

目前正在学习《自然语言处理入门》这本书,第二章 词典分词部分涉及字典树的内容较多,在字典树的基础上又介绍了首字散列其余二分的字典树、双数组字典树、AC自动机,越往后难度越大越难理解,因此理解字典树非常重要,所以参考原书代码和网上代码,敲了一遍首字散列其余二分的字典树的python实现代码,目的在于加深对字典树的理解。算法和概念部分可学习参考资料2,此处不再赘述。

2022-05-18 18:37:30 480

原创 Vue3动态引入图片

技术方案Vue3+Composition API场景在子组件中需要将父组件传入的图片路径赋给img标签,对图片进行显示。为便于子组件复用,图片路径需动态传入,不可在子组件中写死。问题若在setup函数中直接return imgSrcUrl,并在template img标签中引入的话,会导致无法显示图片即找不到文件所在路径,与webpack打包静态资源的方式有关系。<template> <div> <img :src="userImgSrc">

2022-04-04 12:20:01 13348 5

原创 Vue3 setup中使用vuex中的数据

vue3中访问vuex中的数据时,必须通过computed计算属性,才能在模板中响应式显示,否则vuex中数据发生变化后,模板页面中没有变化。但在setup方法中,没有this、computed等vue2中常用的方法,需要从vue中引入。解决方法如下:import { computed} from "vue";import { useStore } from "vuex";export default { name: 'APP', setup() { let store = useS

2022-03-17 13:29:01 6055 1

原创 TypeError: Cannot read properties of undefined (reading ‘NormalModule‘)

解决Vue3下遇到下述问题:TypeError: Cannot read properties of undefined (reading 'NormalModule')

2022-03-16 10:29:42 3992

原创 PySide2之QTableView结合QAbstractTableModel显示表格数据

Model负责与数据源通讯,并提供接口给结构中的别的组件使用。通讯的实质依赖于数据源的类型与Model实现的方式。View从Model获取模型索引,模型索引是数据项的引用。通过把模型索引提供给Model,View可以从数据源中获取数据。需求描述继承QAbstractTableModel类,创建自定义Model,用于保存表格类数据,供QtableView、QChart等视图调用显示。

2021-09-05 11:21:48 4264

原创 PySide2下如何动态添加和移除widgets和layouts

前言在软件开发的过程中,需要在对话框中动态添加和移除控件对象,并且对话框需要根据窗口内容的变化自适应调整自身大小(目前只能自适应变大,不能自适应变小,后续有机会再修改)。下面是代码运行效果截图:代码启动页面动态增加窗口内容动态移除窗口内容代码开发环境:Python3.7 + PySide2PyQt5实现方式基本相同。import sysimport numpy as npfrom PySide2.QtWidgets import QDialog, QWidget, QGrid

2021-08-30 15:40:32 3664

原创 排序算法(七)——快速排序算法详解及Python实现

一、简介快速排序算法最早是由图灵奖获得者Tony Hoare设计的,被列为20世纪十大算法之一。属于交换排序类,是冒泡排序算法的升级,是一种不稳定排序算法,其时间复杂度为O(nlogn)。二、算法介绍快速排序算法的基本思想是:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可对这两部分记录继续进行排序,以达到整个序列有序的目的。选取数组中第一个元素作为pivot key(枢轴),即令pv = li[low],然后从数组的两端向中间扫描;当low &l

2021-08-05 22:52:39 551 1

原创 排序算法(六)——归并排序算法详解及Python实现

一、简介归并排序(Merging Sort)算法是一种稳定排序算法,和堆排序算法一样,都是利用完全二叉树的深度是⌊logn⌋\lfloor logn\rfloor⌊logn⌋+1 的特性,来提高排序效率,其时间复杂度和堆排序相同,均为O(nlogn)。二、算法介绍归并排序就是利用归并(将两个或以上的有序表组合成一个新的有序表)的思想实现的排序方法。基本原理是:假设初设序列有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1, 然后两两归并,得到⌈n/2⌉\lceil n/2 \rceil⌈

2021-08-04 11:18:03 686 6

原创 排序算法(五)——堆排序算法详解及Python实现

本文目录一、简介二、算法介绍三、代码实现排序算法系列——相关文章一、简介堆排序(Heap Sort)算法,属于选择排序类,不稳定排序,时间复杂度O(nlogn)。堆排序由Floyd和Williams在1964年共同发明,是对简单选择排序算法的优化,其出发点是:简单选择排序在遍历时,在待排序的n个元素中,需进行n-1次比较,才能选择出最小的元素,但没有将每次遍历时比较的结果保存下来,导致后续遍历时仍需进行重复操作,因此导致元素比较次数较多。堆排序就是通过堆这种结构,实现了在选择出最小元素的同时,保存了

2021-08-04 07:47:57 1718 4

原创 排序算法(四)——希尔排序算法详解及Python实现

一、简介希尔排序(Shell Sort)算法,属于插入排序类,是不稳定排序,是对直接插入排序算法的优化,其时间复杂度为O(n3/2)。希尔排序是D.L.Shell 于1959年提出来的算法,在此之前排序算法的时间复杂度基本上都是O(n2)的,希尔排序是突破这个时间复杂度的第一批算法之一。[1]二、算法介绍直接插入排序算法在1-数组基本有序或2-数组元素较少时效率很高,希尔排序的出发点就是如何对待排序数组进行调整,使其满足上述两个条件,从而利用直接插入排序算法的优势。最终,科学家Shell通过对数

2021-08-03 10:39:47 580 2

原创 排序算法(三)——直接插入排序算法详解及Python实现

一、简介直接插入排序算法是一种稳定排序算法,其每次循环将特定值插入前面排序好的数组部分,时间复杂度为O(n2),性能好于冒泡排序和选择排序。二、算法介绍算法步骤:遍历数组,令i从0到n-2,若当前元素li[i]大于后一元素li[i+1],则移动元素;移动方式为:将li[i+1]赋值给t,令j=i+1,然后从位置i向前遍历,若li[j-1] > t,则将位置j-1的元素向后移动,即li[j] = li[j-1],直至li[j-1] >= t,然后将元素li[j+1]插入至位置j处。此处

2021-08-02 17:28:20 695

原创 排序算法(二)——简单选择排序详解及Python实现

一、简介选择排序算法是一种不稳定排序算法(见参考资料2中的讨论),时间复杂度为O(n^2^),但由于交换次数较少,性能略优于冒泡排序。基本思想是在第i次遍历时,在第i+1至第n个元素中,选出最小的元素作为有序序列的第i个元素。二、算法介绍以下面的数组为例,对其使用选择排序法进行升序排序:901050803070406020mi用于记录每次遍历时最小元素的位置,开始遍历时令mi=i,若li[j] < li[mi],则令mi=j。i=0时:j从1处开始遍历,得出mi=1,数组li变为:1

2021-08-02 15:52:31 330

原创 排序算法(一)——冒泡排序算法详解及Python实现

一、简介冒泡排序算法是众多排序算法中思路最简单、最容易理解的一个。直观理解就是将数组中较小(或较大)的值不断上浮,最终形成有序数组,这个过程类似于气泡从水底不断冒出来的过程,因此称为冒泡排序。冒泡排序属于交换排序类,是一种稳定排序算法,其时间复杂度为O(n2)。二、算法介绍以下面的数组为例,对其使用冒泡法进行升序排序:901050803070406020遍历数组,比较相邻两个元素,若前一元素大于后一元素,则交换两个元素位置;每次遍历后,都会不断将最大、次大…的元素放置在数组末尾,循环n(数组

2021-08-02 15:17:12 417

原创 Python实现KMP算法-字符串匹配和查找

《大话数据结构》一书第五章介绍了字符串的定义、存储结构和模式匹配算法。关于模式匹配,重点介绍了暴力(Brute-Force)算法和KMP算法,暴力算法较为简单,但性能较低。KMP算法在暴力算法基础上,通过特别巧妙的方式,降低了字符串比较次数,将时间复杂度从O((n-m+1)*m)降低到了O(n+m)。但是!!!这本书中关于KMP算法的介绍冗长、混乱,讲解的不够透彻,只讲其一,不讲其二,非常不便于理解。在反复阅读和理解消化了几个小时后,发现对KMP算法还是不能了然于胸。因此在网上查阅了相关资料,个人感觉讲

2021-07-24 11:43:40 414 4

原创 Python基于链表结构实现链队列Queue

上一篇文章介绍了循环队列的顺序存储结构的实现,Python基于顺序结构实现循环队列Queue。本文参考《大话数据结构》4.13一节,基于链表结构实现了链队列。对于循环队列与链队列的比较,《大话数据结构》中有很好的介绍:对于循环队列与链队列的比较,可以从两方面来考虑:从时间上,其实它们的基本操作都是常数时间,即都为O(1)的,不过循环队列是事先申请好空间,使用期间不释放,而对于链队列,每次申请和释放结点也会存在一些时间开销,如果入队出队频繁,则两者还是有细微差异。对于空间上来说,循环队列必须有一

2021-07-18 11:41:58 397

原创 Python基于顺序结构实现循环队列Queue

参考《大话数据结构》4.12一节,基于顺序结构实现了循环队列。class SeqQueue(object): def __init__(self, size=10): self.MAXSIZE = size self.data = [' '] * size self.front = 0 # 头指针 self.rear = 0 # 尾指针 def __len__(self): return (self.re

2021-07-18 10:01:11 612

原创 Python下基于栈和逆波兰算法实现四则运算

参考《大话数据结构》一书4.9节,Python下基于栈和逆波兰算法实现四则运算。栈的实现使用顺序结构,即基于列表实现,参考本人博客Python实现顺序结构栈Sequence Stack中缀转换后缀采用逆波兰算法,参考本人博客Python利用栈将中缀表达式转换为后缀表达式(四则运算)。计算代码如下所示(transform函数见上述 2.Python利用栈将中缀表达式转换为后缀表达式(四则运算)):def arithmetic(expression): signs = '+-*/'

2021-07-17 22:51:26 368

原创 Python利用栈将中缀表达式转换为后缀表达式(四则运算)

参照《大话数据结构》一书4.9节,基于Python实现了中缀表达式到后缀表达式的转换。栈的实现使用顺序结构,即基于列表实现,与本人博客Python实现顺序结构栈Sequence Stack一致。class SeqStack(object): def __init__(self, size=10): self.__MAXSIZE = size # 将MAXSIZE定义为私有变量,禁止子类对象访问 self.__data = [' '] * size # 将dat

2021-07-17 21:36:19 751

原创 Python使用循环和递归实现斐波那契数列

基于Python实现斐波那契数列。方法一:使用循环,通过yield生成器返回结果,使用时通过list转换为列表。这种方法效率更高,占用空间较小;方法二:使用递归实现,效率很低,占用内存较高。n=40时,方法一耗时不足1s,方法二耗时68s。import timedef fib(n): a = 0 b = 1 for i in range(n): yield b a, b = b, a + bdef fib_recursive(n):

2021-07-17 19:30:41 2217

原创 Python实现链栈 Link Stack

"""Python实现链栈by 勤奋的清风 at 2021-07-17"""class Node(object): def __init__(self, value=None, next_node=None): self.value = value self.next = next_node def set_value(self, value): self.value = value def set_next(self,

2021-07-17 18:31:50 584

原创 Python实现顺序结构栈Sequence Stack

参考大话数据结构,利用Python3实现了栈的顺序结构。class SeqStack(object): def __init__(self, size=10, elem_type=int): self.__MAXSIZE = size # 将MAXSIZE定义为私有变量,禁止子类对象访问 self.type = elem_type self.__data = [elem_type] * size # 将data定义为私有变量,禁止子类对象访问

2021-07-17 13:04:28 253

原创 Python之可变对象作为函数参数问题

在阅读博客文章时,看到一道有趣的题目,代码运行结果和自己理解的不一样,触及到了我的Python知识盲区,说明对Python的一些基础概念理解的不够深刻。个人认为这个知识点较为重要,在数据分析、软件等开发项目中,若出现此类问题,很难排查Bug,因此对这个知识点进行了一番探索,将相关原理和现象说明清楚。问题说明题目出自参考资料[1]中的第四题。代码如下,请推断下述代码的输出结果。def f(x, l=[]): for i in range(x): l.append(i * i

2021-05-30 13:37:51 692 1

原创 阅读笔记:利用Python进行数据分析第2版——第10章 数据聚合与分组运算

目录一、GroupBy机制二、数据聚合三、apply:一般性的“拆分-应用-合并”四、透视表和交叉表对数据集进行分组并对各组应用一个函数(无论是聚合还是转换),通常是数据分析工作中的重要环节。在将数据集加载、融合、准备好之后,通常就是计算分组统计或生成透视表。pandas提供了一个灵活高效的gruopby`功能,它使你能以一种自然的方式对数据集进行切片、切块、摘要等操作。在本章中,你将会学到:使用一个或多个键(形式可以是函数、数组或DataFrame列名)分割pandas对象。计算分组的概述统计,

2021-05-29 18:16:09 436 2

原创 阅读笔记:利用Python进行数据分析第2版——第9章 绘图和可视化

信息可视化(也叫绘图)是数据分析中最重要的工作之一。Python有许多库进行静态或动态的数据可视化,但我这里重要关注于matplotlib和基于它的库。matplotlib是一个用于创建出版质量图表的桌面绘图包(主要是2D方面)。该项目是由John Hunter于2002年启动的,其目的是为Python构建一个MATLAB式的绘图接口。matplotlib和IPython社区进行合作,简化了从IPython shell(包括现在的Jupyter notebook)进行交互式绘图。matplotlib支持各

2021-05-28 15:13:24 506 2

原创 阅读笔记:利用Python进行数据分析第2版——第8章 数据规整:聚合、合并和重塑

在许多应用中,数据可能分散在许多文件或数据库中,存储的形式也不利于分析。本章关注可以聚合、合并、重塑数据的方法。首先,我会介绍pandas的层次化索引,它广泛用于以上操作。然后,我深入介绍了一些特殊的数据操作。

2021-05-25 16:24:43 219

原创 阅读笔记:利用Python进行数据分析第2版——第7章 数据清洗和准备

本章讨论处理缺失数据、重复数据、字符串操作和其它分析数据转换的工具。处理缺失数据对于数值数据,pandas使用浮点值NaN(Not a Number)表示缺失数据。我们称其为哨兵值,可以方便的检测出来:string_data = pd.Series(['aardvark', 'artichoke', np.nan, 'avocado'])string_data.isnull()在pandas中,我们采用了R语言中的惯用法,即将缺失值表示为NA,它表示不可用not available。

2021-05-24 09:18:31 242

原创 阅读笔记:利用Python进行数据分析第2版——第6章 数据加载、存储与文件格式

输入输出通常可以划分为几个大类:读取文本文件和其他更高效的磁盘存储格式,加载数据库中的数据,利用Web API操作网络资源。pandas提供了一些用于将表格型数据读取为DataFrame对象的函数。read_csv和read_table是最为常用的。这些函数的选项可以划分为以下几个大类:索引:将一个或多个列当做返回的DataFrame处理,以及是否从文件、用户获取列名。类型推断和数据转换:包括用户定义值的转换、和自定义的缺失值标记列表等。日期解析:包括组合功能,比如将分散在多个列中的日期时间信

2021-05-22 23:41:58 334 2

原创 阅读笔记:利用Python进行数据分析第2版——第5章 pandas入门

pandas经常和其它工具一同使用,如数值计算工具NumPy和SciPy,分析库statsmodels和scikit-learn,和数据可视化库matplotlib。pandas是基于NumPy数组构建的,特别是基于数组的函数和不使用for循环的数据处理。SeriesSeries是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型) 以及一组与之相关的数据标签(即索引)组成。import pandas as pdfrom pandas import Series, DataFrame

2021-05-22 16:15:59 205

原创 阅读笔记:利用Python进行数据分析第2版——第4章 Numpy基础:数组和矢量计算

大小相等的数组之间的任何算术运算都会将运算应用到元素级。数组与标量的算术运算会将标量值传播到各个元素。大小相同的数组之间的比较会生成布尔值数组。不同大小的数组之间的运算叫做广播( broadcasting),当你将一个标量值赋值给一个切片时( 如arr[5:8]=12),该值会自动传播( 也就说后面将会讲到的“广播”)到整个选区。跟列表最重要的区别在于,数组切片是原始数组的视图。 这意味着数据不会被复制,视图上的任何修改都会直接反映到源数组上。如果你想要得到的是ndarray切片的一份副本而非视.

2021-05-19 15:42:22 1200 1

原创 Python软件项目打包——pyinstaller

说明本文主要针对于多文件打包,单文件打包不在本博客范围内。大型项目打包可参考本文。经本人测试,在win10系统下打包后的软件,无法在win7下运行。结合以往项目经验,若有跨平台需求,需要在不同平台下分别打包生成对应平台下的可执行文件,方可分发至不同平台用户。部分命令简介–distpath : 打包到哪个目录下-w: 指定生成 GUI 软件,也就是运行时不打开控制台-c: 运行时打开控制台-i : 指定打包后可执行文件的图标–clean: 在构建之前清理PyInstaller缓存并删除临时

2020-10-24 16:44:04 411 2

原创 Qt QGridlayout 布局比例-解决列宽不符合设定问题

在设定完QGridlayout布局内容后,将layout传入下述函数,即可实现行列宽高设定基本符合需求。 def gridLayoutSet(self, layout): # 设置每行每列比例一致 # 需设置每行每列最小宽度或高度,size需小于self.width() / layout.rowCount() rowSize = 100 colSize = 100 for row in range(layout.row

2020-09-08 11:12:49 7392

原创 fortran与python跨语言集成(f2py/gfortran)

软件开发项目,界面使用Python开发,基于性能和资源丰富程度考虑,数值计算部分用Fotran语言实现,然后通过Python调用,其中Fortran代码版本较杂,f77、f90、f95同时共存。目前有如下两种解决方案,由于项目时间较为紧张,最终暂采用了F2Py方案:1. 利用F2Py将Fortran代码编译为pyd格式,在Python中可以直接作为模块import;2. 利用gfortran或intel的编译工具,将Fortran代码编译为dll文件。

2020-09-08 11:11:12 3087 4

原创 qt调整widget间距

运行环境windows10PySide2Qt5.12.8Python3.7问题描述继承QDialog自定义了对话框,为其添加了toolbar和图表显示,但两者之间的上下间距过大,不甚美观,需做以调整。解决方案self.main_layout = QGridLayout() # 必须使用QGridLayout布局# 关键在下面两句,缺一不可self.main_layout.setVerticalSpacing(0)self.main_layout.setContentsMargi

2020-08-22 10:15:48 2923 2

原创 PySide2下QAbstractItemModel实现元素的插入与删除

背景介绍基于QAbstractItemModel自定义了TreeModel,并自定义了TreeItem。由于集成自QAbstractItemModel,需要手动撰写删除和添加对象的代码。代码一参考文献中的代码为C++,改写为Python后代码如下 def insertRows(self, row, count, parent:QModelIndex): # 调用insertRow()会自动调用重写的insertRows() parentItem = paren

2020-08-21 21:42:46 994

原创 Python统计项目代码的行数

功能统计Python、Java、C++等语言的项目内代码文件行数并输出。使用前需安装prettytable用于美化输出pip install prettytable代码# coding=utf-8import osimport sysimport prettytable as ptimport codecs# 指定想要统计的文件类型CPP_SUFFIX_SET = {'h', 'hpp', 'hxx', 'c', 'cpp', 'cc', 'cxx'}PYTHON_SUFFIX_S

2020-08-21 21:24:47 1042 2

原创 QT-GraphicScene大于GraphicView时,场景居中问题

使用环境:PySide2 + QT5.12.8 + Python3.7 + Windows10QT或者PyQt解决思路类似。问题描述:由于项目需要,场景需要较大的区域,因此初始化时,场景的面积大于视图窗口的面积,这种情况下,会出现滚动条,且软件会默认将视图聚焦与场景中间,而不是左上角,不符合通常的软件操作习惯,因此需要设置将视图窗口聚焦于场景左上角。解决方案:下述代码仅作参考,关键代码为self.graphView.centerOn(0, 0),通过这句代码将视图中心设置为左上角。from

2020-08-14 16:39:56 1726 1

原创 任意情况下Python获取文件所在目录路径

一常用做法是利用sys库,一般情况下也能得到预期结果,如下所示:import sysfolder_path = sys.path[0]但在某些情况下,上述方法会存在问题,比如在a文件中引用b文件,而两者不属于同一目录中时,在b文件中sys.path[0]路径则会出错。二下面贴上在任意情况下均能正确获得文件所在目录路径的代码:import osfolder_path = os.path.split(os.path.abspath(__file__))[0]以上,欢迎交流。...

2020-08-14 16:15:27 873

原创 Python项目文件引用问题:ImportError: attempted relative import with no known parent package

在做一个项目,采用包的形式进行文件组织,运行代码是会报错`ImportError: attempted relative import with no known parent package`,下面先贴出解决方案。

2020-07-22 12:21:51 117592 24

原创 PySide2/PyQt5 实现设置QDockWidget初始大小

尝试了QDockWidget自带的很多方法,发现无法在保证其可调整大小的情况下,设置其初始大小。当QDockWidget不需要支持调整大小时,可按照如下方法进行设置:# 非完整代码,仅供参考from PySide2.QtWidgets import QDockWidget, QMainWindowclass UIMainWindow(QMainWindow): def __init__(self, *args, **kwargs): super(UIMainWindow, s

2020-06-23 16:57:14 2661

原创 echarts加载世界地图并展示个人数据

需求之前基于GDELT抓取过部分一带一路沿线国家的新闻数据,对各个国家的新闻数据量进行了统计,打算做一张图进行直观的显示。解决方案懒得用ArcGIS来做了,想要磨练下代码水平,因此选择Javascript,调用Echarts进行绘制由于之前调用Echarts的代码无法使用,所以这次不打算在线调用Echarts js文件,避免更新后原有代码无法使用的问题,因此将echarts.js下载到本地...

2019-09-10 09:04:51 7859

openlayer使用方位坐标系显示北极地区

openlayer使用方位坐标系显示北极地区地图 openlayer使用方位坐标系显示北极地区地图

2017-10-11

谷歌GDELT数据下载

代码有注释,数据说明看我博客。没分的可以直接去我博客中复制。代码有注释,数据说明看我博客。

2017-09-22

python利用百度地图API进行地理编码(将地名转换为经纬度)

介绍了如何在百度地图API申请密钥,然后在Python中调用API接口将自有数据中的地名转换为经纬度坐标。具体介绍可参照我的博客。

2017-05-20

tensorflow实现AlexNet训练mnist数据

tensorflow实现AlexNet训练mnist数据python代码

2017-05-07

tensorflow----tf_upgrade.py

在github下载的tf_upgrade.py在升级代码时会报错(本人系统是win10 64位,安装的是tensorflow1.0),对源代码520行进行修改后可以输出结果,但是输出后的文件在win10下直接运行会报错,将文件里的内容复制到新建的py文件中即可运行。

2017-03-14

python实现kaggle中的数字识别

python语言实现kaggle中的数字挖掘入门实例数字识别,附代码用到的数据与算法运行得到的结果,算法运行时间大概为4小时左右,主要是因为knn算法计算量较大。

2016-12-28

c++实现huffman哈夫曼编码

利用c++实现了Huffman编码,并对代码进行了注释,保证可读性。 {4,2,13,3,7,10,8,23,22,35,52,31} 下面是编码结果: 第1个数的huffman编码是:00000 第2个数的huffman编码是:000010 第3个数的huffman编码是:0110 第4个数的huffman编码是:000011 第5个数的huffman编码是:01110 第6个数的huffman编码是:0001 第7个数的huffman编码是:01111 第8个数的huffman编码是:010 第9个数的huffman编码是:001 第10个数的huffman编码是:111 第11个数的huffman编码是:10 第12个数的huffman编码是:110

2016-10-27

快速排序+归并排序+c++

计算机算法课程的作业,用c++实现了归并排序和快速排序,并比较了两种算法的速度。测试数据为随机生成,可设置为10万、100万、1000万大小的数组。在代码中提供了详细的注释,在容易出错的地方进行了解释。下面是得到的输出结果。 the array num is :1000000 The mergesort run time is:15931ms! The quicksort run time is:234ms! the array num is :10000000 The mergesort run time is:15756ms! The quicksort run time is:2527ms!

2016-10-27

道格拉斯普克算法的C++实现

打开txt文件,读取其中的坐标数据,并利用DP算法进行简化。其中,txt文件是由shp文件转化而来,有不同的线对象,每个线对象有各自的很多坐标点,简化时是根据每个线对象进行简化,输出的数据与原数据格式相同,可转化回shp数据进行显示。shp、txt格式之间相互转换的工具在CSDN上面有,用户可另行下载,亲测可以用,程序运行所需的相关数据已一并打包。有任何问题欢迎留言。

2016-05-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除