- 博客(8)
- 收藏
- 关注
原创 归并排序
//7.归并排序 void Merge(int a[], int left, int mid, int right) { int len = right - left + 1; // 数组的长度 int *temp = new int[len]; // 分配个临时数组 int k = 0; int i = left; // 前一数组的起始元素 int j = mid + 1; // 后一数组的起始元.
2020-05-19 10:36:20
123
原创 堆排序
//6.堆排序 void CreatHeap(int a[], int i, int n) { // 注意数组是从0开始计数,所以左节点为2*i+1,右节点为2*i+2 for (; i >= 0; --i) { int left = i * 2 + 1; //左子树节点 int right = i * 2 + 2; //右子树节点 int j = 0; //选出左右子节点中最大的 if (right < n) { a[left] >
2020-05-19 10:35:49
153
原创 直接选择排序
//5.直接选择排序 void SelectSort(int* a, int n) { for (int i = 0; i < n; i++) { int minIndex = i; for (int j = i+1; j < n; j++) { if (a[j] < a[minIndex]) { minIndex = j; } } int tmp = a[minIndex]; a[minIndex] = a[i]; a[i]
2020-05-19 10:35:11
137
原创 希尔排序
//3.直接插入排序 void InsertSort(int* a, int n, int step = 1) { for (int i = step; i < n; ++i) { int j = i - step; if (a[i] < a[j]) { // 比较前后数字大小 int tmp = a[i]; // 作为临时存储 //a[i] = a[j]; while (a[j] > tmp) { // 寻找
2020-05-19 10:34:38
90
原创 直接插入排序
//3.直接插入排序 void InsertSort(int* a, int n, int step = 1) { for (int i = step; i < n; ++i) { int j = i - step; if (a[i] < a[j]) { // 比较前后数字大小 int tmp = a[i]; // 作为临时存储 //a[i] = a[j]; while (a[j] > tmp) { // 寻找
2020-05-19 10:34:06
110
原创 快速排序
int Patition(int *a, int left, int right) { int key = right; int cutoff = left - 1; for (int i = left; i < right; i++) { if (*(a + i) < *(a + right)) { int tmp = *(a + i); *(a + i) = a[++cutoff]; a[cutoff] = tmp; } } int tmp = *
2020-05-19 10:33:33
89
原创 冒泡排序
//1.冒泡排序 void BubbleSort(int* a, int n) { int i, j; for (i = 1; i < n; i++) { for (j = 0; j < n - i; j++) { if (*(a + j) > *(a + j + 1)) { int tmp = *(a + j); *(a + j) = *(a + j + 1); *(a + j + 1) = tmp; } } } } ..
2020-05-19 10:32:42
105
1
原创 KMP模式匹配算法实现
void GetNext(string T, int next[]) { int length = T.length(); int j = 0, k = -1; next[0] = -1; while ( j < length - 1 ) { if ( -1 == k || T[j] == T[k] ) { ++j; ++k; //if ( T[j] != T[k] ) //{ next[j] = k; //} //else //{
2020-05-18 11:16:42
218
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人