算法
文章平均质量分 74
han867241432
这个作者很懒,什么都没留下…
展开
-
选择第i小的元素
思想:利用快排的分割函数,判断小于主元素的元素个数是否为i - 1,是则返回,否则继续递归。#include //输出 void print(int array[], int size) { int i = 0; for(i = 0; i < size; i++) { printf("%d ", array[i]); } printf("\n"); } //交换 void原创 2015-09-22 10:09:13 · 617 阅读 · 0 评论 -
堆排序
#include //输出 void print(int array[], int size) { int i = 0; for(i = 0; i { printf("%d ", array[i]); } printf("\n"); } //两数交换 void swap(int *a, int *b) { int temp = *a; *a = *原创 2015-09-20 22:45:23 · 302 阅读 · 0 评论 -
快速排序
思想:以某一元素为基准,将剩余元素拆分为大于该元素和小于该元素的两部分,然后再分别选取基准元素,重复拆分,知道该部分中剩余元素为一个。 #include //输出 void print(int array[], int size) { int i = 0; for(i = 0; i { printf("%d ", array[i]); } print原创 2015-09-21 14:39:20 · 262 阅读 · 0 评论 -
合并排序
#include //合并子序列 void merge(int array[], int start, int mid, int end) { int len_l = mid - start + 1; // 左子串长度 int len_r = end - mid; //右子串长度 int len = 0, len_max = 0; //len:两个字串小值,l原创 2015-09-16 09:20:09 · 292 阅读 · 0 评论 -
广度优先搜索
#include #include #include #include using namespace std; typedef struct _stNode { int syb; }stNode; #define NUM 8 stNode nodeAry[8]; stNode *parent[8]; int dis[8]; int color[8]; list graph[原创 2016-05-25 16:30:54 · 269 阅读 · 0 评论 -
霍夫曼编码
看了算法导论关于霍夫曼编码的内容,然后做了实现,可能并不是很好,写得比较复杂。//heap.h #ifndef HEAP_H #define HEAP_H #include #include #include typedef struct _letter { int freq; char alpha; char *code; }stLetter; typedef struct原创 2016-05-20 21:19:04 · 466 阅读 · 0 评论 -
深度优先搜索
深度优先搜索算法: #ifndef DFS_H #define DFS_H #include #include "stdio.h" #include using namespace std; #define NUM 6 typedef struct _stNode { char syb; }stNode; stNode nodeAry[NUM]; int color[NUM原创 2016-06-04 17:03:51 · 256 阅读 · 0 评论