随笔分类 -  algorithm

最短路径算法-dijkstra
摘要:首先dijkstra是一个人,一位计算机上古时期的先驱;而dijkstra是他用来向观众解释什么计算机想到的一个算法,如何计算两个地点的最短距离;当然这个最短距离,是有一个前提的,首先你要有一个已知各个点之间距离的路网; 比如这个图,我们如何去寻找A点到E点的最短距离?显然,正常人的直觉就是“这不是 阅读全文

posted @ 2021-01-05 11:40 mindSucker 阅读(98) 评论(0) 推荐(0) 编辑

PAT 1010 Radix
摘要:Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? The answer is yes, if 6 is a decimal number and 110 is a 阅读全文

posted @ 2020-12-18 10:23 mindSucker 阅读(52) 评论(0) 推荐(0) 编辑

PAT 1004 Counting Leaves
摘要:A family hierarchy is usually presented by a pedigree tree. Your job is to count those family members who have no child. Input Specification: Each inp 阅读全文

posted @ 2020-09-06 11:15 mindSucker 阅读(90) 评论(0) 推荐(0) 编辑

PAT 1003 Emergency
摘要:原题目: As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by so 阅读全文

posted @ 2020-09-04 16:40 mindSucker 阅读(105) 评论(0) 推荐(0) 编辑

DFS 深度优先搜索
摘要:#include "DFS.h" #include <list> #include <stack> using namespace std; DFS::DFS(int vertexCount) { this->v = vertexCount; this->adj = new list<int>[v] 阅读全文

posted @ 2020-09-03 19:25 mindSucker 阅读(163) 评论(0) 推荐(0) 编辑

BFS 广度优先搜索
摘要:#include <queue> #include <list> #include "BFS.h" using namespace std; BFS::BFS(int vertexCount){ this->v = vertexCount; this->adj = new list<int>[v]; 阅读全文

posted @ 2020-09-03 19:24 mindSucker 阅读(122) 评论(0) 推荐(0) 编辑

Shell Sort 希尔排序
摘要:class ShellSort { public: void sort(int * arr, int size); }; #include "ShellSort.h" #include <iostream> void ShellSort::sort(int *arr, int size) { int 阅读全文

posted @ 2020-09-03 19:22 mindSucker 阅读(162) 评论(0) 推荐(0) 编辑

Quick Sort 快速排序
摘要:class QuickSort { public: void sort(int * arr, int size); private: int partition(int * arr, int start, int end); void quickSort(int *arr, int start, i 阅读全文

posted @ 2020-09-03 19:20 mindSucker 阅读(153) 评论(0) 推荐(0) 编辑

Merge Sort 归并排序
摘要:class MergeSort { public: void sort(int * arr, int size); private: void arrCopy(int *sourceArr, int *targetArr, int size); void divideSort(int *arr, i 阅读全文

posted @ 2020-09-03 19:18 mindSucker 阅读(82) 评论(0) 推荐(0) 编辑

Insertion Sort
摘要:class InsertionSort { public: void sort(int * arr, int size); }; #include "InsertionSort.h" /** * 本质上是遍历每个元素,和数组前部的有序部分进行一一比较,找到合适的位置,进行插入 * 所以这里有两部分逻 阅读全文

posted @ 2020-09-03 19:17 mindSucker 阅读(110) 评论(0) 推荐(0) 编辑

Bubble Sort
摘要:class BubbleSort { public: void sort(int * arr, int size); }; #include "BubbleSort.h" /** * 冒泡排序,意思是从头开始,拿 j 和 j+1 元素 进行比较,如果前面的元素大于后面的元素,那么就进行交换,就像冒泡 阅读全文

posted @ 2020-09-03 19:15 mindSucker 阅读(153) 评论(0) 推荐(0) 编辑