实用数据结构
大烁爱吃肉
作为知识管理和分析的仓库,涉及工作与生活中的知识、感受和创意。
发布文章如下几类:1.把零碎的知识整理起来,做成一个完整的教学篇。2.遇到问题时的解决办法。3.自己对于架构、算法、逻辑的设计创新。4.社会时事或生活中遇到的事物的感悟,或者建模去分析和解决问题。5.IT从业人的身心健康建议,养生与健身。
展开
-
链表插入+排序
感觉突然领悟了指针的精华,自己写了个带排序功能的链表,使用指针进行高效的操作,颇有成就感。原创 2017-03-30 21:01:13 · 435 阅读 · 0 评论 -
HDU 5688 16百度之星预选赛D
哈希表,map的应用原创 2017-07-18 13:23:10 · 297 阅读 · 0 评论 -
堆排序
在一个一维数组中模拟二叉树,操作的堆排序。 #include #include void Swap(int *num, int v, int u) { int temp = num[v]; num[v] = num[u]; num[u] = temp; } void PercolateDown(int num[],int index,int size) {原创 2017-07-24 16:23:58 · 259 阅读 · 0 评论 -
哈希存储与线性探查
要将一列数存到一个表中,为了方便存储与查找,这就用到了哈希存储 例如一列数2 12 18 11 13 7 10 8 总共8个数字,通过对8取余求出这些数的下标,对应着存放进去 这样,当查找这个数的时候就用哈希函数计算出这个数的位置。 例如2与18算出位置一样的,就用到了线性探查,也就是向后遍历找到一个空位置。如图用红线连接的就是向后移动的数。查找的时候也是向后移动。求出了平均查找次数时2....原创 2018-02-13 19:23:06 · 362 阅读 · 0 评论 -
快速排序与冒泡排序
快速排序是比较基础的排序算法,是冒泡排序的升级版,容易和冒泡排序混淆。基本的操作还是交换,是从两头向中间遍历,同时也用到了分治的思想,每组操作都有至少一个到达最终位置为了以防以后忘了,我在这附上具体操作图#include<cstdio> #include<cstring> using namespace std; void ksort(int *a, int left, ...原创 2018-03-16 16:46:38 · 441 阅读 · 0 评论 -
链表的反转
属于链表的基本操作,用一个循环搞定。下面用一个结构简单的存整数的链表演示。#include<stdio.h> #include<string.h> #include<stdlib.h> struct List { int val; List *Next; }; List *L; int n=0; List *pushin(List *l,int...原创 2018-03-03 20:30:35 · 238 阅读 · 0 评论