数据结构
笔下无墨
这个作者很懒,什么都没留下…
展开
-
排序——快速排序(更新三个常见版本)
快速排序(Quicksort)是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。下图红色线条为基准值,所分割的两部分,一部分比基准值小,一部分大于等于基准值。void quickSort_digui(...原创 2020-02-14 18:33:33 · 294 阅读 · 0 评论 -
排序——冒泡、插入、选择
冒泡排序法它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。//冒泡排序void bubbleSort(int* arr, int n){ //从小到大排,每次找出最大的 //外层循环是排序总趟数,每次排一个,总共排n-1次 for (int i = 0; i < n-1; i++) { //内层循环写一趟比...原创 2020-02-14 18:24:11 · 88 阅读 · 0 评论 -
简述时间和空间复杂度
时间复杂度就是说这个算法要进行多少次计算,遍历。空间复杂度就是说这个算法需要用到多少空间内存等。关于时间复杂度,常见的有O(1),O(n),O(n^2)等;如果说这个算法的次数是可以确定的,是常数次,比如100次,10000次,那么时间复杂度就是O(1)。比如:int main(){ int n = 1000; while(n--) { printf("hello\n");...原创 2019-11-10 17:38:31 · 183 阅读 · 1 评论 -
C语言顺序表及其基本功能实现
顺序表采用顺序存储结构的线性表通常称为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。即逻辑上相邻,物理上也相邻。顺序表的结点建立typedef int SLDataType;//将数据类型设置为SLDataType;如果要该类型为double那么只要在这里将int 改为double即可。typedef struct SeqList{ SLDataTy...原创 2019-11-10 16:17:53 · 239 阅读 · 0 评论