数据结构与算法
常用数据结构与算法
程序圆圆圆
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python数据结构 链表
class Node: def __init__(self, init_data): self.__data = init_data self.__next = None def get_data(self): return self.__data def get_next(self): return s...原创 2018-03-16 22:54:45 · 260 阅读 · 0 评论 -
二叉树的建立,以及递归前中后序遍历二叉树
测试用例如图:#include <stdio.h>#include <stdlib.h>#define TREE "+*E*D/CAB"typedef int dt;typedef struct NODE { dt data; struct NODE *lp; struct NODE ...原创 2017-12-13 19:37:13 · 308 阅读 · 0 评论 -
快速排序 C语言实现
快排的总体思想如下:if low < high找到枢轴点,使得枢轴点左侧小于枢轴点,右侧大于枢轴点对左侧快排对右侧快排#include <stdio.h>//查找枢轴点位置int partition(int* a, int low, int high) { int tmp = a[low]; while (low < h...原创 2017-12-11 18:25:29 · 311 阅读 · 0 评论 -
基本排序的比较
1基本排序包括选择、插入、冒泡、希尔排序。2基本排序适用于需要排序元素不是很多的小型文件(几十个或几百个)或基本有序文件(希尔排序)。3使用基本排序的好处:1)不用消耗太多精力在系统接口和排序的实现上,错误率低。2)开销很小,通常只有中间变量用于交换。而快排、归并都存在退化文件过大的问题。3)对于基本有序或包含大量重复关键字文件效率很高。4)相对复杂排序,基本排...原创 2013-03-06 11:52:25 · 844 阅读 · 0 评论 -
链表 基本操作
codeblocks测试通过,个人理解仅供参考。如有错误,请联系我,以便更改。#include <iostream>#include <cstdlib>using std::cin;using std::cout;using std::endl;//结点。struct node{ int data; //为了方便数据以int表示,...原创 2012-09-14 23:16:54 · 804 阅读 · 0 评论 -
N皇后问题
#include <stdio.h>//是否同列,同主对角线,副对角线int is_OK(int row, int *c) { int j = 0; for (j = 0; j != row; ++j) { //分别对应 是否同列 || 同主对角线 || 同副对角线 if (c[row] == c[j] || row - c[r...原创 2017-12-30 14:00:34 · 270 阅读 · 0 评论 -
插值搜索
插值搜索核心代码由二分搜索(区间左闭右开)m = l + 1.0/2*(r - 1- l) = 1.0(l + r - 1)/2 更改为m = l +1.0*(key - a[l])/(a[r -1] - a[l])*(r -1- l). 利用关键字所在位置的估值(key - a[l])/(a[r -1] - a[l])代替1/2,对于随机分布为常规分...原创 2013-03-14 23:24:18 · 1138 阅读 · 1 评论 -
高精度运算 大数加法
#include <iostream>#include <cstring>using std::cin;using std::cout;using std::endl;char *add( char *s1, char *s2 );char *reversal_str(char *s);int main(){ char s1[100000],...原创 2012-06-08 22:09:03 · 678 阅读 · 0 评论 -
ACM-ZOJ 1086 八进制小数转十进制 低位高精度除法初步认识
昨天补马克思笔记真心伤不起,从晚上10点多写到1点半,早上又六点爬起来接着写,所以就没写代码。 正如标题,今天的主题就是八进制小数转十进制,我也不知道八进制小数有什么用,不过题就让你将八进制转十进制那咱们就转一下。 这个题读完之后大家基本就会有思路,开始学程序的时候就是2转8,8转10,10转16,16转2,基本转一会就懵了……不过现在应该没什么问题了,举一个简单例子:原创 2012-06-07 07:54:37 · 5648 阅读 · 4 评论 -
高精度计算 大数减法
#include <iostream>#include <cstring>using std::cin;using std::cout;using std::endl;char *subduction( char *s1, char *s2 );char *reversal_str(char *s);int main(){ char s1[1...原创 2012-06-08 22:10:53 · 510 阅读 · 0 评论 -
高精度计算 大数乘法
#include <iostream>#include <cstring>using std::cin;using std::cout;using std::endl;char *multiplication( char *s1, char *s2 );int check( int *a, int n );//进位,去零,返回去零后的长度int *Str...原创 2012-06-08 22:11:55 · 1528 阅读 · 1 评论 -
同余幂
曾经因为一道题研究了一下同余幂,然而当时貌似找了一个模板一样的东西,至于原理什么的还是没有太清楚,今天看离散的时候研究了一下和大家分享一下。 目前求同余幂(b^n mod m)可行的方法是利用指数n的二进制展开的算法。其基本的原理就是 b^n =b^(a[k-1]*2^(k-1)+……a[1]*2 + a[0])...原创 2012-06-08 22:23:43 · 1867 阅读 · 0 评论
分享