
数据结构与算法
文章平均质量分 79
编程一时爽Cxx
温故知新
展开
-
高级排序之 希尔排序、归并排序(递归)、快速排序 C
之前我们学习过基础排序,包括冒泡排序,选择排序还有插入排序,并且对他们在最坏情况下的时间复杂度做了分析,发现都是(N^2),而。,因为每一次递归调用都会在栈内存开辟新的空间,重新执行函数,如果。定义函数时,在函数内部调用函数本身,称之为递归。将已有序的子序列合并,得到完全有序的序列;,是插入排序算法的一种更高效的改进版本。上的一种有效的排序算法,该算法是采用。希尔排序是插入排序的一种,又称。的问题,接下来我们学习一些。原创 2021-05-06 23:55:52 · 43 阅读 · 3 评论 -
简单排序之 冒泡排序、选择排序、插入排序 C
冒泡排序冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。需求:排序前 :{4,5,6,3,2,1};排序前 :{1,2,3,4,5,6};排序原理: 俩俩相比,比大互换。1.比较相邻的元素。如果前一个元素比后一个元素大,就交换这两个元素的位置。2对每一对相邻元素做同样的工作,从开始第一对元素到结尾的最后一对元素。最终最后位置的元素就是最大值。bubbleSort.cstatic void compareSwap(int *a, int *b){ if原创 2021-05-06 23:10:21 · 244 阅读 · 0 评论 -
算法时间复杂度、空间复杂度分析
算法时间复杂度分析在计算机程序编写前,依据统计方法对算法进行估算,经过总结,我们发现一个高级语言编写的程序程序在计算机上运行所消耗的时间取决于下列因素:1.算法采用的策略和方案;⒉编译产生的代码质量;3.问题的输入规模(所谓的问题输入规模就是输入量的多少);4.机器执行指令的速度;由此可见,抛开这些与计算机硬件、软件有关的因素,一个程序的运行时间依赖于算法的好坏和问题的输入规模。如果算法固定,那么该算法的执行时间就只和问题的输入规模有关系了。我们研究算法复杂度,侧重的是当输入规模不断增大时,原创 2021-05-06 00:06:46 · 2169 阅读 · 0 评论 -
数据结构、算法概述
1.1 什么是数据结构?官方解释:数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。大白话:数据结构就是把数据元素按照一定的关系组织起来的集合,用来组织和存储数据。1.2 数据结构分类传统上,我们可以把数据结构分为逻辑结构和物理结构两大类。逻辑结构分类:逻辑结构是从具体问题中抽象出来的模型,是抽象意义上的结构,按照对象中数据元素之间的相互关系分类,也是我们后面深入学习需要关注和讨论的问题。a.集合结构︰集合结构中数据元素除了属于同一个集合外原创 2021-05-06 00:06:01 · 174 阅读 · 0 评论