算法
tyt2222008
定力如磐,行走无疆
展开
-
dynamic programming --knapsack problem 背包问题(c++实现)
/* * KnapsackProblem.cpp * * Created on: Jul 11, 2010 * Author: kevin */#include #include #include "Array.h"#include using namespace std;//void init_table(vector >& t, int n);//void init_table(vector& >& t, int nRow, int nCol)原创 2010-07-10 17:39:00 · 1374 阅读 · 0 评论 -
mergesort 归并排序
/* * MergeSortAlgorithm.h * * Created on: Jun 22, 2010 * Author: kevin */#ifndef MERGESORTALGORITHM_H_#define MERGESORTALGORITHM_H_//void mergesort(int* arr, int len);//void copy_arr(int* src, int begin1, int end1,// in原创 2010-06-21 17:31:00 · 629 阅读 · 0 评论 -
Quicksort 快速排序源程序
//QuicksortAlgorithm.cpp:#include "stdafx.h"#include using namespace std;void quicksort(int* arr,int len);void quicksort(int* arr,int si, int ei);int partition(int* arr,int si, int ei);void swap(int& a, int& b);//void test_quicksort();voi原创 2010-06-24 11:52:00 · 762 阅读 · 0 评论 -
写代码前要想好
写了一个文件压缩器,用哈夫曼编码,走了很多弯路,原因在于未能真正理解哈夫曼编的实质。1. 原来哈夫曼编码是可以连续在一起的。例如,'c'的编码是 01, b 的编码是 00, 那么字符串 'bc'的编码就是‘0001’, 注意,中间是不用空格或其他字符作为标识的。一开始我以为要,但未想清楚,直到看了书才知道。2. 出现这个的根本原因在于,过于匆忙地写代码,未能事先理解算法的本质。劳力是有限的,所以不能一味死干。聪明地干,先思考,再干活。原创 2010-12-15 22:07:00 · 700 阅读 · 0 评论 -
c风格:用简单的数据结构表示复杂的数据结构,效率会高很多
我在写一个哈夫曼编码解压缩文本文件时,遇到需要用一个数据结构来表示哈夫曼树的问题一开始我是用面向对象的方法,采用最直观的建模方法,即链式存储结构:template class BiTreeNode{private: BiTreeNode* leftChild; BiTreeNode* rightChild;public: T data; BiTreeNode():leftChild(NULL),rightChild(NULL) {}; BiTreeNode(T ite原创 2010-12-24 16:24:00 · 1272 阅读 · 0 评论