数据结构与算法
LiveAndLearn322
这个作者很懒,什么都没留下…
展开
-
学习:图的存储(领接表和领接矩阵)
学习:图的存储(领接表和领接矩阵) #include <iostream> #include <cassert> #include <ctime> #include <cstdlib> #include <vector> using namespace std; //稀疏图 - 领接表 class SparseGraph { private: int n,m;//顶点个数、边的2 bool directed;//是否为有向图 vector原创 2020-05-12 15:41:07 · 777 阅读 · 0 评论 -
学习:数组原地堆排序(从小到大排序)
学习:数组原地堆排序(从小到大排序) #include <iostream> #include <ctime> #include <cstdlib> using namespace std; template <class T> void shiftDown(T a[], int k, int n) { while( 2*k <= n) { int j=2*k; if(j+1 <= n && a[j+1] > a原创 2020-05-09 17:32:52 · 459 阅读 · 0 评论 -
学习:堆排序(大顶堆)
学习:堆排序(大顶堆) #include <iostream> #include <cassert> #include <ctime> #include <cstdlib> using namespace std; template <class T> class MaxHeap { private: T *data; int count; int capacity; void shiftUp(int k) {原创 2020-05-09 16:49:13 · 119 阅读 · 0 评论 -
学习:三路快速排序
学习:三路快速排序 #include <stdio.h> void swap(int *a, int *b) { int t=*a; *a=*b; *b=t; } //三路快排,a[l...lt-1]<pivot,a[lt...gt-1]=pivot,a[gt...r]>pivot void __quickSort(int a[], int l, int r) { int lt=l,gt=r+1,i=l+1,pivot=a[l]; if(l >= r) re原创 2020-05-08 18:06:12 · 162 阅读 · 0 评论 -
学习:快速排序(简单版)
学习:快速排序(简单版) 此版本不适用于有大量重复值和数据基本有序的数据进行快速排序。 #include <stdio.h> //交换 void swap(int *a, int *b) { int t=*a; *a=*b; *b=t; } //划分数组:a[l...j-1]<pivot, a[j]==pivot, a[j+1...r]>=v int partition(int a[], int l, int r) { int i,j=l,pivot=a[l]; for(原创 2020-05-08 17:38:03 · 147 阅读 · 0 评论 -
学习:归并排序(MergeSort)
学习:归并排序(MergeSort) C语言版: #include <stdio.h> #include <stdlib.h> //自底向上合并 void __merge(int a[], int l, int mid, int r) { int *temp,i,j,k; temp=(int*)malloc(sizeof(int)*(r-l+1)); for(i=l;...原创 2020-05-07 15:23:21 · 113 阅读 · 0 评论 -
PTA:7-2 一元多项式的乘法与加法运算(C语言实现)
PTA:7-2 一元多项式的乘法与加法运算(C语言实现) 相似问题: 甲级:1002 A+B for Polynomials 添加链接描述 甲级:1009 Product of Polynomials 添加链接描述 #include <stdio.h> int main() { int i,j,k,a[1001]={0},add[1001]={0},mul[2001]={0},n,...原创 2020-04-24 14:36:15 · 635 阅读 · 0 评论 -
PTA:7-1 最大子列和问题
PTA:7-1 最大子列和问题 动态规划: #include <stdio.h> int max(int a,int b) { return a>b?a:b; } int main() { int k,a[100000]={0},dp[100000]={0},i,m=0; scanf("%d",&k); for(i=0; i<k; i++) scan...原创 2020-04-23 17:24:14 · 222 阅读 · 0 评论