数据结构(C&C++)
DCLe
多看书,多练习,多锻炼
展开
-
CUDA9.0 C++测试程序
【代码】CUDA9.0 C++测试程序。原创 2022-08-19 16:39:06 · 596 阅读 · 0 评论 -
C++实现矩阵乘法
代码】C++实现矩阵乘法。原创 2022-07-17 20:24:48 · 320 阅读 · 0 评论 -
找第k小的元素(基于快速排序的思想)
找第k小的元素(基于快速排序的思想)#include<stdio.h>#include<stdlib.h>int Select_Nok(int a[], int low, int high,int k) { int pivot = a[low]; int low_temp = low; //在后续递归调用中需要用到最初调用时的low和high,而在之后的调用中会修改low和high,所以暂时保存下来 int high_temp = high;原创 2021-09-06 22:04:37 · 148 阅读 · 0 评论 -
改变顺序存储序列的顺序(使奇数全部位于偶数前)
改变顺序存储序列的顺序(使奇数全部位于偶数前)运用快速排序的思想,从前向后找偶数,从后向前找奇数,交换#include<stdio.h>#include<stdlib.h>void Swap(int a[], int i, int j) { int temp = a[i]; a[i] = a[j]; a[j] = temp;}void move_odd_even(int a[], int n) { int i = 0, j = n - 1; while (原创 2021-09-06 21:44:37 · 179 阅读 · 0 评论 -
2021-09-06双向冒泡排序
双向冒泡排序#include<stdio.h>#include<stdlib.h>//双向冒泡排序void Swap(int a[], int i, int j) { int temp = a[i]; a[i] = a[j]; a[j] = temp;}void TW_Bubble_Sort(int a[], int n) { int low = 0, high = n - 1; bool flag = true; while (low < high &原创 2021-09-06 21:35:35 · 69 阅读 · 0 评论 -
归并排序(C语言)
归并排序(C语言)#include<stdio.h>#include<stdlib.h> int a[] = { 1,4,8,7,9,6,8,2 }; int n = sizeof(a) / sizeof(a[0]);void Merge(int a[], int low, int mid, int high) { int* b = (int*)malloc(n*sizeof(int)); int i, j, k; //i,j指向辅助数组中的两个序列,k指向原数组原创 2021-09-05 20:43:11 · 117 阅读 · 0 评论 -
堆排序(C语言实现)
#include<stdio.h>void HeapAdjust(int a[], int k, int len) { a[0] = a[k]; for (int i = 2 * k; i <= len; i *= 2) { if (i < len && a[i] < a[i + 1]) i++; if (a[0] >= a[i]) break; else { a[k] = a[i]; k = i; } } a[原创 2021-09-05 19:02:16 · 66 阅读 · 0 评论 -
堆排序(C语言,带测试用例)
堆排序(C语言,带测试用例)#include<stdio.h>void HeapAdjust(int a[], int k, int len) { a[0] = a[k]; for (int i = k * 2; i <= len; i *= 2) { if (i < len&&a[i]<a[i+1]) i++; if (a[0] >= a[i]) break; else { a[k] = a[i]; k = i;原创 2021-09-05 18:36:38 · 228 阅读 · 0 评论 -
堆排序(C语言实现)
堆排序(C语言实现)#include<stdio.h>void Build_Max_Heap(int a[], int len) { for (int i = len / 2; i > 0; i--) HeapAdjust(a, i, len);}void HeapAdjust(int a[], int k, int len) { //调整以k为根的堆 a[0] = a[k]; //哨兵存下需要调整的元素 for (int i = 2 * k; i <=原创 2021-09-05 18:21:17 · 105 阅读 · 0 评论 -
用Swap函数交换同一个数组的两个元素的值
用Swap函数交换同一个数组的两个值(C语言)#include<stdio.h>void Swap(int a[], int i, int j) { int temp = a[i]; a[i] = a[j]; a[j] = temp;}void main() { int a[] = { 1,2,3,4,5,6,7,8,9 }; Swap(a, 2, 3); printf("%d\n", a[2]); printf("%d\n", a[3]);}...原创 2021-09-05 17:23:39 · 2911 阅读 · 0 评论 -
快速排序(C语言,带测试用例)
快速排序(C语言)#include<stdio.h>int Partition(int a[], int low, int high) { int pivot = a[low]; while (low < high) { //总控制 while (low < high && a[high] >= pivot) high--; //每一轮控制 a[low] = a[high]; while (low < high &原创 2021-09-05 17:13:15 · 498 阅读 · 0 评论 -
简单选择排序(C语言)
简单选择排序(C语言)#include<stdio.h>void Select_Sort(int a[], int n) { int i, j; for (i = 0; i < n - 1; i++) { int min = i; //i表示当前最小元素应该在的位置,min记录最小元素的实际位置 for (int j = i + 1; j < n; j++) if (a[j] < a[min]) min = j; if原创 2021-09-04 22:58:32 · 408 阅读 · 1 评论 -
2021-09-04
冒泡排序(C语言)#include<stdio.h>void Bubble_Sort(int a[], int n) { //小的跑到前面 for (int i = 0; i < n - 1; i++) { bool flag = false; for (int j = n - 1; j > i; j--) { if (a[j - 1] > a[j]) { int temp = a[j - 1]; a[j] = a[j - 1];原创 2021-09-04 22:40:10 · 53 阅读 · 0 评论 -
希尔排序(C语言)
希尔排序(C语言)#include<stdio.h>void Shell_Sort(int a[], int n) { //先追求部分有序,再追求整体有序 int i, j, d; for (d = n / 2; d >= 1; d /= 2) { for(i=d+1;i<=n;i++) //控制每个子表都比较到 if (a[i] < a[i - d]) { a[0] = a[i]; for (j = i - d; a[j] > a[原创 2021-09-04 21:36:43 · 65 阅读 · 0 评论 -
2021-09-04
插入排序(C语言实现)#include<stdio.h>void Insert_Sort(int a[], int n) { int i, j, temp; for (i = 1; i < n; i++) { if (a[i - 1] > a[i]) { //前面的部分序列已经有序,如果a[i]>a[i-1],则加入a[i]后仍局部有序,无需做调整 temp = a[i]; for (j = i - 1; j >= 0 &&原创 2021-09-04 20:43:00 · 57 阅读 · 0 评论 -
2021-07-25
数据结构(C&C++)树(第二阶段)#include<stdio.h>#include<stdlib.h>#define MaxSize 25typedef struct BiNode { int data; struct BiNode* lchild, * rchild;}BiNode,*BiTree;typedef struct { int data[MaxSize];}SqTree;int Common_Ancestor(SqTree T,原创 2021-07-25 15:53:08 · 56 阅读 · 0 评论 -
2021-07-22
数据结构(C&C++)树(第一部分)#include<stdio.h>#include<stdlib.h>#define MaxSize 25typedef struct BiNode { int data; struct BiNode* lchild, * rchild;}BiNode,*BiTree;typedef struct { int data[MaxSize];}SqTree;int Common_Ancestor(SqTree T,原创 2021-07-22 22:56:15 · 59 阅读 · 0 评论 -
2021-07-20
数据结构(C&C++)串#include<stdio.h>#include<stdlib.h>#define MaxSize 25typedef struct { char ch[MaxSize]; int length;}SString;typedef struct { char* ch; int length;}HString;int Index(SString S, SString T) { //普通匹配算法,时间复杂度O(mn)原创 2021-07-20 17:33:05 · 47 阅读 · 0 评论 -
2021-07-20
递归公式的非递归实现(栈)#include<stdio.h>#include<stdlib.h>#define MaxSize 50typedef struct { int data[MaxSize]; int top;}SqStack;void IniStack(SqStack& s) { s.top = -1; //top指向的是栈顶元素,所以栈空时为-1,也可以让指针top指向下一个将要入栈的元素,小心上溢}bool.原创 2021-07-20 11:21:27 · 56 阅读 · 0 评论 -
2021-07-20
数据结构(C&C++)队列(牺牲一个节点判断队满的循环队列)#include<stdio.h>#include<stdlib.h>#define MaxSize 50typedef struct { int data[MaxSize]; int front, rear;}SqQueue;void IniQueue(SqQueue& Q) { Q.front = Q.rear = 0;}bool IsQEmpty(SqQueue Q) {原创 2021-07-20 11:02:38 · 60 阅读 · 0 评论 -
2021-07-17
数据结构(C&C++)栈#include<stdio.h>#include<stdlib.h>#define MaxSize 50typedef struct { int data[MaxSize]; int top;}SqStack;void IniStack(SqStack& s) { s.top = -1; //top指向的是栈顶元素,所以栈空时为-1,也可以让指针top指向下一个将要入栈的元素,小心上溢}原创 2021-07-17 21:33:03 · 64 阅读 · 0 评论 -
2021-07-17
数据结构(C&C++)链表#include<stdio.h>#include<stdlib.h>#include<iostream>typedef struct LNode { int data; struct LNode* next;}LNode, * LinkList;typedef struct DNode { int data; struct DNode* prior, * next;}DNode,*DList;LinkLis原创 2021-07-17 20:20:25 · 61 阅读 · 0 评论 -
2021-07-14
数据结构(C&C++)线性表的顺序表示#include<iostream>#include<stdlib.h>#include<stdio.h>#define MaxSize 20using namespace std;int Bsearch(int a[],int n,int x);int main() { return 0;}typedef struct { int data[MaxSize]; int length;}Sq原创 2021-07-14 11:05:27 · 59 阅读 · 0 评论