原创 實驗三 自底向上的語法分析

// 首先,感謝孫同學的Java版代碼,讓我有了參考 // 下面上C++代碼,文件操作部分自行改寫即可 #include <iostream> #include <fstream> #include <cstring> #inclu

原创 堆排序,heapSort

// 堆排序,heapSort // O(n*logn),不穩定 #include <cstdio> void PrintArray(int array[], int begin, int end); void HeapAdjust(

原创 八大排序

直接插入排序 希爾排序 簡單選擇排序 堆排序 冒泡排序 快速排序 歸併排序 基數排序 參考博客:http://blog.csdn.net/zuochao_2013/article/details/79249234

原创 遞歸,八皇后問題

#include <cstdio> #include <iostream> #include <cstdlib> using namespace std; int cnt = 0; int n = 8; int P[10] = {0};

原创 實驗二 自上而下的語法分析

// 首先,感謝孫同學的Java版代碼,讓我有了參考 // 下面上C++代碼,文件操作部分自行改寫即可 #include <iostream> #include <fstream> #include <cstring> #include

原创 POJ 1182(並查集)

《挑戰程序設計競賽》,初級篇–樹 // 並查集 #include <iostream> #include <cstdio> using namespace std; #define maxn 50050 int p[maxn]; int

原创 基數排序,radixSort

// radixSort,基數排序 // O(d(r+n)),穩定 #include <cstdio> int getDigit(int i, int d) { int val; while(d--) {

原创 大整數,四則運算

// 四則運算,負數情況未處理 #include <cstdio> #include <cstring> #include <algorithm> using namespace std; struct bignum { i

原创 希爾排序,shellSort

// 希爾排序,shellSort // O(n^1.3),不穩定 #include <cstdio> void shellSort(int arr[], int length) { int d = length/2;

原创 歸併排序,mergeSort

// 歸併排序,mergeSort // O(n*logn),穩定 #include <cstdio> void merge(int arr[], int l, int mid, int r); void mergeSort(int

原创 PAT A1025,PAT Ranking (25)

#include <cstdio> #include <cstring> #include <algorithm> using namespace std; struct Student { char id[20]; i

原创 並查集,union-find sets

《挑戰程序設計競賽》,初級篇–樹 // union-find sets #include <iostream> #include <cstdio> using namespace std; #define maxv 110 int pa

原创 STL,二叉搜索樹(set)

《挑戰程序設計競賽》,初級篇–樹 // set初步使用 #include <cstdio> #include <set> using namespace std; int main() { set<int> s; fo

原创 插入排序,insertSort

// 插入排序,insertSort // O(n^2),穩定 #include <cstdio> void insertSort(int *arr, int n) { for(int i = 1; i < n; i++)

原创 快速排序,quickSort

// 快速排序,quickSort // O(n*logn),不穩定 #include <cstdio> int partition(int arr[], int l, int r) { int i = l, j = r, x