数据结构和算法日志
菜鸡成长之路
这个作者很懒,什么都没留下…
展开
-
c++实现三大排序
插入排序的思路就是一个一个排序伪代码:将数组中小的数字往前移(A,N)//有N个元素的数组Afor i从1到N-1 包含N-1 v=A[i] j=i-1 while j>=0且A[j]>v A[j+1]=A[j] j-- A[j+1]=v代码如下:#include <iostream> using namespace std; i...原创 2018-03-25 22:38:20 · 404 阅读 · 0 评论 -
希尔排序
#include <iostream> #include <cmath> #include <cstdio> #include <algorithm> #include <vector> using namespace std; long long cnt=0; vector<int> G; int A[1000000]...原创 2018-03-31 22:25:46 · 169 阅读 · 0 评论 -
快速排序算法
代码:#include <stdio.h> #define MAX 100000 int A[MAX]; int partiton(int A[],int n,int p,int r) { int i=p-1; int temp; for(int j=p;j<r;j++) { if(A[j]<=A[r]) ...原创 2018-04-01 22:15:15 · 151 阅读 · 0 评论 -
Bellman-Ford算法 C++/java实现 及优化
Bellman-Ford算法的核心就是对边进行松弛操作 贴上c++源代码 #include "stdafx.h" #pragma warning(disable:4996) #include <iostream> using namespace std; //表示一条边 struct Edge { int src; int dest; int weight; }; //带有权值...原创 2018-10-21 10:36:14 · 1157 阅读 · 2 评论 -
Dijkstra算法 C++/Java
Dijkstra算法的核心就是把顶点集合分成两个,一个是记录已经知道距离的,另外一个剩下的,所以当知道距离的那个集合满了就代表最短路径已经找到。 不过复杂度挺高的【初学者还未清楚理解】 找到跟源点距离最近的点,更新其距离 然后将其放进已知集合,更新所有距离【松弛操作】 #include <iostream> #include <cstdio> #define MAXN...原创 2018-10-21 11:30:57 · 414 阅读 · 0 评论