数据结构
文章平均质量分 71
yulian529
这个作者很懒,什么都没留下…
展开
-
冒泡排序、插入排序、交换排序
本文介绍复杂度为O(N^2)的三种排序:冒泡、插入以及交换,还有插入排序的变种希尔排序; 冒泡排序:(时间复杂度固定,恒为O(N^2) void BubbleSort(int a[], int n) { for (int i = 0; i < n-1; i++) for (int j = 0; j < n-i-1; j++) if (a[原创 2016-04-13 14:36:38 · 423 阅读 · 0 评论 -
二叉树前、中、后序遍历(递归与非递归)
树节点结构体: struct TreeNode { int val; TreeNode *left; TreeNode *right; }; 递归建立二叉树: TreeNode *createTree() { TreeNode *root; int x; scanf("%d", &x); if (x == -1翻译 2016-03-27 21:33:14 · 288 阅读 · 0 评论 -
字符串处理函数strcpy(), strcat(), strcmp()的输入输出
1,strcpy 函数 函数原型: char *strcpy(char *dst, const char *src) { assert(dst != NULL && src != NULL); char *p = dst; while ((*dst++ = *src++) != '\0'); return p; } 输出: 输入的dst地址; 2,原创 2016-06-21 21:25:20 · 765 阅读 · 0 评论 -
快速排序、堆排序、归并排序
常见排序有7种:冒泡排序、希尔排序、插入排序、选择排序、快速排序、堆排序、归并排序。 此处讨论后三种时间复杂度为O(NlogN)的算法。 1,快速排序 一般情况下,快速排序迭代(或递归)次数为logN,每次恒进行N次比较;最差情况下迭代N次; Partition部分: int Partion(int a[], int low, int high) { int i = low;原创 2016-03-28 12:50:21 · 397 阅读 · 0 评论