![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习笔记
聪明乖巧的小狮子
这个作者很懒,什么都没留下…
展开
-
蓝桥杯小练习
排序、杨辉三角原创 2022-04-08 23:37:31 · 221 阅读 · 0 评论 -
词频统计(字符串,列表)
统计字符串、列表中每个字母出现的次数原创 2022-02-14 23:12:31 · 790 阅读 · 0 评论 -
排序算法整理3
改进版冒泡排序:使用pos记录bound(边界)#include "iostream"using namespace std;void sort(int arr[],int n){ int pos=n; while(pos!=0) { int bound=pos; pos=0; for(int i=1;i<bound;i++) { if(arr[i]>arr[i+1])原创 2021-05-31 18:55:16 · 63 阅读 · 0 评论 -
kruscal求最小生成树
kruscal算法:对每条边的权值进行从小到大排序,然后从小到大取权值最小的边,如取出的边会在树中产生回路则舍去,取下一条;若不会产生回路则加入到树中。判断是否会产生回路的方法为:在初始状态下给每个顶点赋予不同的标记,对于遍历过程的每条边,其都有两个顶点,判断这两个顶点的标记是否一致,如果一致,说明它们本身就处在一棵树中,如果继续连接就会产生回路;如果不一致,说明它们之间还没有任何关系,可以连接,同时连接后会将其顶点标记改变。#include <iostream>#include <原创 2021-05-28 22:11:01 · 280 阅读 · 0 评论 -
最小生成树prim算法
prim算法(选顶点)不断选取最小权值的边并把对应的顶点不断并入的过程过程:1.随意选取起点:随意选择一个顶点作为起始点(不会影响结果),现在我们设U集合为当前所找到最小生成树里面的顶点,T集合为所找到的边。2.在前一步的基础上寻找最小权值: 查找一个顶点在U={v1}集合中,另一个顶点在V-U集合中的最小权值3.继续寻找最小权值:查找一个顶点在U={v1,v2}集合中,另一个顶点在V-U集合中的最小权值4.每次都选取权值最小的边,但不能构成回路,构成环路的边则舍弃。遇到权值相等,又均不构成回原创 2021-05-28 14:08:19 · 739 阅读 · 0 评论 -
查找算法 1
线性查找int search(int a[],int n,int key){ a[0]=key; //哨兵 for(int i=n;a[i]!=key;i--) { return i; //查找成功ASL=n+1/2 ; 不成功则ASL=n+1 }}二分查找(折半查找)方法一int sreach1(int a[],int n,int key,int num){ int low=1; int high=n; wh原创 2021-05-26 17:59:51 · 64 阅读 · 0 评论 -
排序算法整理2
希尔排序(缩小增量排序) 时间复杂度:O(nlogn)~O(n^2)#include "iostream"using namespace std;void shell_sort( int arr[], int n){ int i ; //循环变量 int j; //循环变量 int d; //增量 int key; //临时保存一个变量 for(d=n/2;d>=1;d=d/2) //逐渐缩短“步长” ,最初分成n/2个组,步长逐渐减小,直至原创 2021-05-25 21:57:37 · 58 阅读 · 0 评论 -
图的创建以及遍历(邻接表)
#include "iostream"#include "iomanip"#include "algorithm"#define maxsize 10using namespace std;int visited[]={0};struct arc_node //边表{ int adjvex; //邻接点下标 arc_node*next_arc; //指向下一条弧节点}; struct vertex_node //存储顶点信息(顶点表){ cha原创 2021-05-21 13:44:29 · 253 阅读 · 0 评论 -
二叉树的创建与操作
#include <iostream>#include <stack>#include <vector>#include "algorithm"#include "queue"using namespace std;template<class T>struct binode{ T data; binode<T>*leftchild; binode<T>*rightchild;};templa原创 2021-05-12 13:51:08 · 86 阅读 · 0 评论 -
快速排序的cpp和python实现
快速排序#include<iostream>using namespace std;int func( int arr[], int left, int right){ int temp = arr[left]; while (left < right) { while ((left < right) && (arr[right] >= temp)) { right -= 1; } arr[left] = arr[ri原创 2021-05-02 13:36:23 · 53 阅读 · 0 评论 -
排序算法学习与整理(1)
-------有谁能拒绝使用sort函数呢(手动狗头)--------不过还是要学习算法的思想丫冒泡排序这个我在学习c++的数组的时候曾经学习过冒泡排序顾名思义就是想吐泡泡一样一个一个把元素排列成一个从小到大的顺序时间复杂度为O(n^2)#include<iostream>using namespace std;void bubble(int arr[],int len){ for (int i = 0; i < len - 1; i++) //i从0到len原创 2021-04-03 16:55:07 · 76 阅读 · 0 评论