![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
wn12-02
这个作者很懒,什么都没留下…
展开
-
静态顺序表基本操作
测试环境VS2013 seqlist.h#pragma once#include <stdio.h>#include <stdlib.h>#include <assert.h>#include <malloc.h>typedef int DataType;typedef struct ListNode{ struct...原创 2018-04-21 15:50:43 · 272 阅读 · 0 评论 -
动态顺序表的基本操作
seqlistd.h#pragma once#include <stdio.h>#include <stdlib.h>#include <assert.h>typedef int DataType;typedef struct SeqListD{ DataType* _array; int _size; //有...原创 2018-04-25 21:25:41 · 111 阅读 · 0 评论 -
常见排序算法——归并排序
基本思想: 将待排序的元素序列分成两个长度相等的子序列,对每一个子序列排序, 然后将他们合并成一个序列。合并两个子序列的过程称为二路归并.由于归并排序不依赖于待排序元素序列的初始输入状态,每次划分时两个 子序列的长度基本一致,所以归并排序的最好、最差和平均时间复杂度均 为O(n*log2n ) 空间复杂度为:O(n) 它是一种稳定的排序算法void _MergeData(int...原创 2018-06-05 16:24:32 · 162 阅读 · 0 评论 -
常见排序算法——交换排序
利用交换元素的位置进行排序的方法称作交换排序 常用的交换排序的方法:冒泡排序和快速排序 【冒泡排序】 冒泡排序最好情况时间复杂度O(n),冒泡排序最坏情况下时间复杂度O(n^2) 冒泡排序空间复杂度O(1) 冒泡排序是一种稳定的排序算法void BubbleSort(int* array, int size){ int i = 0; for (i = 0; i ...原创 2018-06-05 16:18:47 · 3079 阅读 · 0 评论 -
非比较排序——计数排序
【计数排序】 计数排序又称为鸽巢原理,是对哈希直接定址法的变形应用 操作步骤: (1)确认数据的范围; (2)确定计数空间; (3)统计相同元素出现次数; (4)根据统计的结果将序列回收到原来的序列中 时间复杂度:O(n) 空间复杂度:O(m) ——>m:数据范围代码如下:void CountSort(int* array, int size){ int...原创 2018-06-05 16:32:10 · 125 阅读 · 0 评论 -
非比较排序——基数排序
【基数排序】 又名桶排序 LSD(Least Significant Digit first ) MSD(Most Significant Digit first)基本思想: 首先根据个位数的数值,在遍历数据时将它们各自分配到编号0-9的桶(个位数值与桶号一一对应)中。 分配结束后,接下来将所有桶中所盛数据按照桶号由小到大(桶中按先进先出)依次重新收集串起来,得到的仍是无序的数列; ...原创 2018-06-05 16:49:05 · 142 阅读 · 0 评论 -
位图
位图所谓位图(bitmap),是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。例如,要判断一千万个人的状态,每个人只有两种状态:男人,女人,可以用0,1表示。那么就可以开一个int数组,一个int有32个位,就可以表示32个人。操作的时候可以使用位操作。使用位图法判断整形数组是否存在重复判断集合中存在重复是常见编程任务之一,...原创 2018-05-24 21:52:21 · 219 阅读 · 0 评论