算法
Rp_
计算机科学与技术专业,正在学习数据挖掘方向,同时学习微服务后台内容,欢迎一起交流hhh
展开
-
无序数组找中位数 C/C++,Python 快排思想实现
无序数组找中位数 C++,Python 快排思想实现无序数组找中位数可以快排,然后直接去array[mid]即可,但这确实还不够快,因为我们的任务是找到中位数,而没有说要对这个数组排序,即只要array[mid]是中位数即可,array[0…mid]之间数据可以是无序的,只要小于array[mid]即可,而对右半区间也一样。这里我们用快排的思想来实现,如果还不了解快排的同学可以到该博客去学习一...原创 2020-04-12 22:57:11 · 1361 阅读 · 0 评论 -
Python C\C++ Java 手写十大经典排序算法 冒泡、选择、插入、希尔、归并、快速、堆、计数、桶、基数排序
Python C\C++ Java 手写十大经典排序算法 冒泡、选择、插入、希尔、归并、快速、堆、计数、桶、基数排序排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:关于时...原创 2020-02-22 22:20:07 · 434 阅读 · 0 评论 -
判断是否存在 i小于j小于k,a[i]小于a[k]小于a[j],C代码
判断是否存在i<j<k,a[i]<a[k]<a[j]暴力做法:时间复杂度 O(N3)O(N^3)O(N3)// 暴力解法O(N^3)int baoli(int *a, int right){ for(int i = 0; i < right; i++){ for(int k = 0; k < right; k++){ ...原创 2020-02-13 22:48:32 · 1108 阅读 · 0 评论 -
图解 归并排序 C Java实现
归并排序简介:归并排序是成功应用分治技术的一个完美例子。对于一个需要排序的数组A[0..n−1]A[0..n-1]A[0..n−1],归并排序把它一分为二:A[0..n2−1]A[0..\frac{n}{2}-1]A[0..2n−1]和A[n2..n−1]A[\frac{n}{2}..n-1]A[2n..n−1],并对每个子数组队规排序,然后把这两个排好序的子数组合并为一个有序数组。...原创 2019-04-26 10:20:37 · 248 阅读 · 0 评论 -
哈夫曼树及编码讲解及例题
哈弗曼树及编码哈弗曼树算法第一步:初始化n个单节点的树,并为它们表上字母中的字符。把每个字符的概率记在树的根中,用来指出树的权重(更一般地说,树的权重等于树中所有叶子的概率之和)。第二部:重复下面的操作,直到只剩下一颗单独的树。找到两颗权重最小的树(对于权重相同的树,可任意选择其一)。把它们作为新树中的左右子树,并把其权重之和作为新的权重记录在新树的根中。上面的算法构造的树称为哈弗曼树...原创 2019-04-19 16:17:11 · 55799 阅读 · 4 评论 -
Prim算法详解
Prim算法背景:常常遇到的问题:给定n个点,把它们按照一种代价最低的方式连接起来,使得任意两点之间都存在一条路径。介绍:用途的顶点来表示上述问题的点,可能的连接用途的边来表示,而连接的成本则用边的权重表示。那么上述问题就可以表示成最小生成树问题,下面给出它的正式定义。最小生成树定义:连通图的一颗生成树(spanning tree)是包含图的所有顶点的连通无环子图(也就是一棵树)。加权...原创 2019-04-19 17:03:19 · 3646 阅读 · 3 评论 -
快速排序算法详细教程及其优化,C语言代码
快速算法简介:快速排序是基于分治技术的重要排序算法,排序算法按照元素的值对它们进行划分。划分是对给定数组中的元素的重新排序,使得A[s]A[s]A[s]左边的元素都小于等于A[s]A[s]A[s],而右边A[s]A[s]A[s]右边的元素都大于等于A[s]A[s]A[s]。显然,建立了一个划分以后,A[s]A[s]A[s]已经位于它在有序数组中的最终结果,接下来我们可以继续对A[s]A[...原创 2019-04-19 22:37:27 · 16816 阅读 · 0 评论 -
A* 算法(启发式搜索)
A* 算法百度百科:A*算法,A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。别称:别称:启发式搜索表达式: f(n)=g(n)+h(n)f(n)=g(n)+h(n)f(n)=g(n)+h(n)原理公式表示为: f(n)=g(n)+h(n)f(n)=g(n)+h(n)f(n)...原创 2020-02-12 21:56:07 · 2569 阅读 · 0 评论