自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 数据理解啊

from pandas import read_csvfrom pandas import set_optionfilename = 'pima.csv'#这里为数据补充了文件头names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']data = read_csv(filename, names=names)#查看数据的维度print(data.shape)#查看数据的前10行print

2021-11-03 08:53:51 111 1

原创 导入数据的几种方法

采用标准python类库导入数据#读取文件from csv import readerimport numpy as npfilename = 'pima.csv'with open(filename, 'rt') as raw_data: readers = reader(raw_data, delimiter=',') x = list(readers) #把数组中的数字转换成float类型(如果有非数字,就不能转换) data = np.array(x).as

2021-11-03 08:33:06 923

原创 内部排序算法

直接插入排序void insert_sort(int a[], int n){ int i; for(i = 2; i <= n; i++) { a[0] = a[i]; for(j = i-1; a[0] < a[j]; j--) { a[j+1] = a[j]; } a[j+1] = a[0]; }}时间复杂度:O(n)~O(n2)空间复杂度:

2021-07-29 11:27:03 90

原创 堆的课后题

1、堆和二叉排序树的区别以大顶堆为例,大顶堆的特点是要求左右孩子的关键字值小于双亲关键字值,对于左右孩子关键字值的大小没有次序规定。而二叉排序树要求左孩子关键字值小于双亲关键字值,右孩子关键字值大于双亲关键字值,每个双亲结点与左右孩子之间的关键字值有次序关系。当对两种树执行中序遍历时,二叉排序树会得到一个递增序列,堆不一定能得到有序序列。2、若只想得到一个序列中第k(k>=5)个最小元素之前的部分排序序列,最好采用什么排序方法?插入排序、快速排序都需要将所有元素排序之后才能得到前k个最小。

2021-07-27 11:06:46 497

原创 荷兰国旗问题

有一个仅有红、白、蓝三种颜色的条块组成的条块序列,编写一个时间复杂度为O(n)的算法,使得这些条块按红白蓝的顺序排好。顺序扫描线性表,设三个指针typedef enum{red, white, blue} color;void f(color a[], int n){ int i = 0, j = 0, k = n-1; while(j < k) { switch(a[j]) { case red: Swap(a[

2021-07-26 16:40:40 109

原创 |n1-n2|最小且|S1-S2|最大

将由n个正整数构成的集合A划分成两个不相交的子集A1和A2,元素个数是n1和n2,A1和A2中的元素之和分别是S1和S2,设计一个尽可能高效的划分算法,满足|n1-n2|最小且|S1-S2|最大思路:自己想的是从两边冒泡排序,直到中间相遇,答案给的思想是快排的,而且不用全部排序,每一次排一半,时间复杂度是O(n),更优。答案:1)基本设计思想:将最小的n/2个元素放入A1,其余放入A2,即可满足题干要求。按照快速排序的思想,每次找到枢轴所在位置,将集合一分为二。设枢轴所在最终位置为i,若 i== n

2021-07-26 16:24:38 836

原创 找到第k小的元素

找到在数组中第k小的元素int f(ElemType a[], int low, int high, int k){ int i = low, j = high; ElemType t = a[i]; while(i < j) { while(a[j] >= t && i < j) j--; a[i] = a[j]; while(a[i] <= t && i <

2021-07-26 15:43:18 40

原创 随机选取枢轴值

void f(int low, int high){ int k = low + rand() % (high - low + 1); //这里别忘了要加low,每次不一定是从0开始的,rand()随机函数趋取余区间长度 Swap(a[k], a[low]); ElemType t = a[low]; int i = low, j = high; while(i < j) { while(a[j] >= t) j--;

2021-07-26 15:34:37 148

原创 奇数放前偶数放后

线性表按顺序存储,设计把所有奇数放到所有偶数的前面,要求时间最少,辅助空间最少void f(int a[]){ int i = 0, j = n-1; while(i < j) { while(a[i]%2!=0 && i < j) i++; while(a[i]%2==0 && i < j) j--; if(i < j) { int t

2021-07-26 15:17:08 86

原创 双向冒泡啊

void s(int n){ int i = 0, j = n-1, t, i1, j1, flag = 1; while(i < j && flag) { flag = 0; for(i1 = i ; i1 < j; i1++) { if(a[i] > a[i+1]) { t = a[i];

2021-07-26 15:09:08 50

原创 查找到时和前驱结点交换

采用顺序结构:typedef struct{ ElemType *elem; //存储空间基址,建表时分配,0号位留出 int length;} table;int Sort(table t, int k){ int i; for(i = 1; i <= t.length; i++) { if(k == t.elem[i]) { if(i != 1) {

2021-07-17 20:44:10 242

原创 二分查找的递归算法

typedef struct{ ElemType *elem; //存储空间基址,建表时分配,0号位留出 int length;}table;int Search(int left, int right, int k, table t){ if(left > right) return -1; int mid = (left + right) / 2; if(k == t.elem[mid]) { return mid;

2021-07-17 20:24:39 149

原创 计算机网络和数据结构的结合

弧结点的两种形态|flag=1| next || id || ip || metric ||flag=0| next || prefix || metric |表头节点:|router id || link || next |typedef struct //弧结点{ unsigne

2021-07-15 14:40:32 246

原创 用dfs实现无环图拓扑、逆拓扑排序

拓扑排序:对于无环图中的任意节点u、v,若其中一个是另一个父节点或者祖先结点,则dfs时孩子结点总是会先结束,即祖先结点结束的时间必然大于孩子结点的时间;若两者没有关系,则在拓扑排序中的顺序也没关系。所以设置一个结构体来记录每一个节点递归结束时的时间,最后根据时间从大到小排序,就是拓扑排序的顺序。struct node{ int num; int time;}finish[100];void Sort(ALGraph G){ int i; for(i = 0; i

2021-07-14 17:12:49 1747 1

原创 分别基于dfs和bfs判断是否存在路径

分别基于深度优先遍历和广度优先遍历算法判别以邻接表方式存储的有向图中是否存在有顶点Vi到顶点Vj的路径。dfs的:void dfs(ALGraph A, int start, int dest, int k, int vis[],int flag) { vis[k] = true; if(k == dest) { flag = 1; return; } int x = FirstNeighbour(A, k); for(i

2021-07-12 17:39:47 869

原创 dfs算法的非递归算法(邻接表存储)

非递归算法就要借助一个栈!使用栈之后访问visit函数就是从右到左进行的void dfs(AGraph &A, int k){ InitStack(s); //初始化一个栈 int i; for(i = 0; i < A.vexnum; i++) { vis[i] = flase; } push(&s, k); while(!IsEmpty(s)) { k = Pop(s);

2021-07-12 15:15:49 624

原创 6.3 图的遍历-判断是不是树

设计一个算法,判断一个无向图G是不是一颗树,若是返回true,不是返回false判断一个无向图G是不是一棵树:G必须是无回路的连通图或有n-1条边的连通图用dfs遍历,若可以遍历所有顶点,并且遍历过的边数是n-1就是一棵树bool is_tree(mgraph graph, int vis[]){ int i; for(i = 0; i < graph.vexnum; i++) { vis[i] = false; } int Vnum =

2021-07-12 14:50:41 263

原创 整数分解啊

#include<bits/stdc++.h>using namespace std;int c;void f(int x){ int i; int a = sqrt(x); for(i = 2; i <= a; i++) { if(x % i == 0) //如果能除尽,就继续递归 { f(i); if(i*i==x) c++; //刚才递归的那个,如果相乘=X

2020-11-15 17:46:38 63

原创 汉诺塔

双色汉诺塔和普通的汉诺塔一样目标是将全部的从a移到b汉诺塔可:将最小的那个顺时针移动一个,再移动除了最小的那个到可以去的那个位置。重复重复。就很神奇#include<bits/stdc++.h>using namespace std;void m(int n, char start, char endd, char assist){ if(n == 1) { cout << n <<" " << start &lt

2020-11-15 17:30:54 118

原创 2020-10-03

顺序表应用7:最大子段和之分治递归法Description给定n(1<=n<=50000)个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n。 例如,当(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2

2020-10-03 07:42:03 93

原创 快排

#include<iostream>using namespace std;int n, a[10];void f(int left, int right){ int i = left, j = right, k; k = a[i]; if(i >= j) return; while(i < j) { while(a[j] >= k && i < j) {

2020-09-28 08:36:13 60

原创 003:冷血格斗场

总时间限制: 1000ms 内存限制: 65536kB描述为了迎接08年的奥运会,让大家更加了解各种格斗运动,facer新开了一家冷血格斗场。格斗场实行会员制,但是新来的会员不需要交入会费,而只要同一名老会员打一场表演赛,证明自己的实力。我们假设格斗的实力可以用一个正整数表示,成为实力值,两人的实力值可以相同。另外,每个人都有一个唯一的id,也是一个正整数。为了使得比赛更好看,每一个新队员都...

2020-02-26 16:36:22 403

原创 002:热血格斗场

总时间限制: 1000ms 内存限制: 65536kB描述为了迎接08年的奥运会,让大家更加了解各种格斗运动,facer新开了一家热血格斗场。格斗场实行会员制,但是新来的会员不需要交入会费,而只要同一名老会员打一场表演赛,证明自己的实力。我们假设格斗的实力可以用一个正整数表示,成为实力值。另外,每个人都有一个唯一的id,也是一个正整数。为了使得比赛更好看,每一个新队员都会选择与他实力最为接近...

2020-02-24 20:10:00 515 1

原创 001:Set

总时间限制: 5000ms 内存限制: 100000kB描述现有一整数集(允许有重复元素),初始为空。我们定义如下操作:add x 把x加入集合del x 把集合中所有与x相等的元素删除ask x 对集合中元素x的情况询问对每种操作,我们要求进行如下输出。add 输出操作后集合中x的个数del 输出操作前集合中x的个数ask 先输出0或1表示x是否曾被加入集合(0表示不曾加入),...

2020-02-23 21:58:05 1053 2

原创 007:List

描述写一个程序完成以下命令:new id ——新建一个指定编号为id的序列(id<10000)add id num——向编号为id的序列加入整数nummerge id1 id2——合并序列id1和id2中的数,并将id2清空unique id——去掉序列id中重复的元素out id ——从小到大输出编号为id的序列中的元素,以空格隔开输入第一行一个数n,表示有多少个命令( n...

2020-02-22 16:11:09 629

原创 006:我自己的 ostream_iterator

程序填空输出指定结果#include <iostream>#include <list>#include <string>using namespace std;template <class T1,class T2>void Copy(T1 s,T1 e, T2 x){ for(; s != e; ++s,++x) *x = ...

2020-02-22 11:00:30 1706

原创 004:函数对象的过滤器

程序填空输出指定结果#include <iostream>#include <vector>using namespace std;struct A { int v; A() { } A(int n):v(n) { }; bool operator<(const A & a) const { return v < a.v; }...

2020-02-22 10:11:57 954

原创 002:按距离排序

程序填空,输出指定结果#include #include #include #include using namespace std;template <class T1,class T2>struct Closer {// 在此处补充你的代码};int Distance1(int n1,int n2) {return abs(n1-n2);}int Dist...

2020-02-21 21:47:59 1087 2

原创 001:goodcopy

编写GoodCopy类模板,使得程序按指定方式输出#include using namespace std;template struct GoodCopy {// 在此处补充你的代码};int a[200];int b[200];string c[200];string d[200];template void Print(T s,T e) {for(; s != e;...

2020-02-21 20:36:53 1203

原创 007:排序,又见排序!

自己编写一个能对任何类型的数组进行排序的mysort函数模版。只能写一个mysort模板,不能写mysort函数!#include using namespace std;bool Greater2(int n1,int n2){return n1 > n2;}bool Greater1(int n1,int n2){return n1 < n2;}bool Gr...

2020-02-21 10:35:30 1002

原创 山寨版istream_iterator

模仿C++标准模板库istream_iterator用法,实现CMyistream_iterator使得程序按要求输出#include #include using namespace std;template class CMyistream_iterator{// 在此处补充你的代码};int main(){int t;cin >> t;while( t ...

2020-02-20 15:56:25 985 2

原创 018:别叫,这个大整数已经很简化了!

018:别叫,这个大整数已经很简化了!程序填空,输出指定结果#include #include #include #include using namespace std;const int MAX = 110;class CHugeInt {// 在此处补充你的代码};int main(){char s[210];int n;while (cin >>...

2020-02-18 16:51:48 917

原创 001:全面的MyString

001:全面的MyString#include #include using namespace std;int strlen(const char * s){int i = 0;for(; s[i]; ++i);return i;}void strcpy(char * d,const char * s){int i = 0;for( i = 0; s[i]; ++i)...

2020-02-10 16:01:44 996

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除