算法
算法学习
developer@liyong
GISer
展开
-
c(文件)
1 文件函数#include <stdio.h>#include <stdlib.h>int main() { FILE* fp; // 定义文件指针 if ((fp = fopen("E:/test.txt", "r")) != NULL) { while (!feof(fp)) { // 没有到文件末尾 char ch = fgetc(fp); printf("%c",ch);原创 2021-11-04 14:41:02 · 82 阅读 · 0 评论 -
数学常见问题
1 求最大公约数int gcd (int a, int b){ return b ? gcd(b, a % b) : a;}2 求最大公倍数int gcd (int a, int b){ return b ? gcd(b, a % b) : a;}int mcu(int a, int b) { int t = gcd(a, b); return a * b / t;}3 判断是否为质数判断是否为质数(试除法)bool is_prime(int x)原创 2021-09-19 11:04:20 · 127 阅读 · 0 评论 -
常见排序算法
1 希尔排序void xierSort(int q[], int n, int d[], int dn) { for (int k = 0; k < dn; k ++) { for (int i = d[k]; i < n; i ++) { int tem = q[i]; int j = i - d[k]; for (; j >= 0 && q[j] > tem; j -= d[k]) {原创 2021-09-14 23:38:36 · 91 阅读 · 0 评论 -
图论相关算法
1 dijkstra算法const int N = 510;int g[N][N];int st[N];int dist[N];int path[N]; // 保存路径int n, m;void get_path(int v) { if (path[v] != -1) get_path(path[v]); printf("%d ", v);}void dijkstra() { memset(st, 0, sizeof st); dist[1] = 0;原创 2021-09-16 19:24:15 · 72 阅读 · 0 评论 -
c语言(双链表)
1 结构定义typedef struct DLNode { int data; struct DLNode* prior; struct DLNode* next;} DLNode;2 链表操作头节点插入void add2head(DLNode* L, int x) { DLNode* p = (DLNode*)malloc(sizeof(struct DLNode)); p->data = x; p->next = L->next; p->prior原创 2021-08-22 17:16:33 · 77 阅读 · 0 评论 -
c语言(单链表)
一 、 单链表1 链表的结构typedef struct Node { int data; Node *next;} Node;2 链表操作头节点插入在这里插入代码片#include <stdio.h>#include <stdlib.h>Node *head;// 生成链表,此处可以用随机函数随机产生数和长度代替Node * generate(int q[], int n) { head = (Node *)malloc(s原创 2021-08-21 16:34:29 · 83 阅读 · 0 评论 -
c语言(结构体)
结构体的概念不在赘述,参考各种C语言书籍(如谭浩强的C)1 定义struct 类名 { 成员列表(可以是变量,函数,结构体,共同体等类型);} 变量名列表(包括数据,指针,普通变量等多种类型);ex : 初始版struct Point { double x; double y;} P; 定义点的结构,包含两个成员x, y。 P为变量名,可以在结尾定义多个变量,如数组指针等。ex : 拓展版- 可以使用typedef 为结构体取更方便的别名ex : typede原创 2021-08-20 12:47:24 · 182 阅读 · 0 评论 -
根据数据样本猜测题解
引言: 在做算法题目时,在题目结束位置都会给出数据的变化范围,或是数据样本的多少。根据数据情况有时可以大概猜出此题解法。c/c++ 处理10的8次方条指令大约为1-2秒。java/python 处理10的8次方条指令大约为3-4秒。因此根据数据的状况可以猜出需要时间复杂度为多少的算法。例如一个数组的大小为10的6次方,那么如果你的算法时间复杂度为O(N^2)肯定不会过。至少需要O(logN)。...原创 2021-06-18 22:03:57 · 129 阅读 · 0 评论