![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构(C)
Fei_Zodiac
这个作者很懒,什么都没留下…
展开
-
linux C程序存储空间布局
典型的C程序 存储空间如下 正文段:CPU执行的及其指令部分 初始化数据段:程序中需要明确赋值的变量 如全局变量 int max=100 未初始化数据段:也称bss段,程序中没有明确赋值的变量如全局变量 int max[ ] 栈:自动变量以及每次函数调用时所需保存的信息存放在此段 堆:通常在堆中进行动态存储分配 从上图我们可以看到 从程序文件中读出的只有初始化数据段和原创 2014-03-06 09:35:29 · 813 阅读 · 0 评论 -
堆算法C实现
堆排序代码,在测试十万随机生成数情况下,平均运行时间在0.06s,在一百万随机生成数情况下,平均运行时间在0.36s,时间复杂度O(nlgn)。(注意:数组下标为0的项没有参与排序) #include #include /*数据量:十万*/ #define LEN 100000 int size=LEN; /*调整待排序堆得大小*/ void heapSort(int ar原创 2014-03-26 19:22:15 · 672 阅读 · 0 评论 -
插入排序C实现
插入排序算法时间复杂度O(n*n),在内嵌生成十万随机数生成下,插入算法在该条件下平均运行时间在7s。 #include #include #define LEN 100000 //数据量:十万 void insertSort(int arr[],int len); int main() { int arr[LEN]; int i; /*生成十万随机数*/ for(i=原创 2014-03-26 16:06:37 · 503 阅读 · 0 评论 -
冒泡排序C实现
冒泡排序算法时间复杂度O(n*n),在内嵌生成十万随机数生成下,本来想测一百万,但是时间太长,以后排序算法都使用十万随机数以作比较,冒泡算法在该条件下平均运行时间在11s,远大于之前的快速排序,可见快速排序在大数据量中的的优势。 #include #include #define LEN 100000 //排序数据量 十万 void bubbleSort(int arr[]原创 2014-03-26 15:18:51 · 615 阅读 · 0 评论 -
快速排序C实现
随机快速排序代码,在测试一百万随机生成数情况下,平均运行时间在0.3s,在测试十万随机生成数情况下,平均运行时间在0.055s。时间复杂度O(nlgn)。 #include #define LEN 1000000 int arr[LEN]; void quickSort(int arr[],int p,int q); int main() { int i; for原创 2014-03-26 14:53:23 · 654 阅读 · 0 评论 -
计数排序C实现
计数排序有点特殊,本程序限定数域为0-99,时间复杂度O(n)。各个计数数量排序所用时间见下表 计数数量 一万 十万 百万 千万 亿 运行时间(s) 0.034 0.04 0.065 0.45 2.75 /* **功能:计数排序算法 **产生随机数范围:0-99 **随机数数量:百万 */ #includ原创 2014-03-26 20:08:06 · 542 阅读 · 0 评论 -
选择排序C实现
选择排序算法时间复杂度O(n*n),在内嵌生成十万随机数生成下,选择算法在该条件下平均运行时间在12s多一点。 #include #include #define LEN 100000 //数据量:十万 void selectSort(int arr[],int len); int main() { int arr[LEN]; int i; /*生成十万随机数*/原创 2014-03-26 15:38:44 · 478 阅读 · 0 评论 -
shell排序C实现
shell排序实际上是步长变化的char原创 2014-09-11 20:10:44 · 606 阅读 · 0 评论