![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Algorithm
jxhaha
不停的搬砖
展开
-
排序算法之堆排序
堆排序是基本排序算法中常见的一类排序方法。它利用堆这一数据结构的性质来进行排序的。排序主要分为两步,首先将一个数组转换成堆数组。我们将这个堆数组分成两段,一段是有序队列,一段是余下的数组。有序队列始终位于堆数组的末尾。最开始有序队列长度为0。由于堆数组的根节点是整个堆的最大(最小)元素。这样我们将堆数组的末尾元素与根节点交换。此时有序队列增加了第一个元素,它是整个堆数组里面的最大(小)元素。对余下的原创 2016-10-24 14:10:54 · 217 阅读 · 0 评论 -
排序相关算法之冒泡排序
冒泡排序,就是不断的通过比较相邻元素的大小,将最大的元素挪到数组的尾部,从而得到排序的目的。具体而言,假设有N个待排序的数字,用a[N]存贮这些数字。首先比较a[0]和a[1],如果a[0]>a[1],则将a[0]和a[1]交换位置。这样大的元素就挪到了a[1]的位置。接着,比较a[1]和a[2],按相同方式进行处理…直到a[n-2]和a[n-1]。这样一轮比较下来,就可以将最大的元素被挪到了a的末原创 2016-10-20 16:03:26 · 240 阅读 · 0 评论 -
排序相关算法之插入排序
继续写排序算法相关的东西。 首先从插入排序开始。插入排序,简单来说,就是不断的将新的元素插入已经排好的队列中,最终实现排序的目的。具体而言就是,对于N个数进行排列,初始化一个长度为1的队列,队列里只有第1个数。这个队列被我们认为是有序队列。那么从剩下的第2~N个数字中,依次取出每个数字,将该数字插入有序队列里,并且保证插入后,队列依然是按顺序排列的。这样随着数字的插入,有序队列长度越来越大,最终当原创 2016-10-20 13:29:13 · 212 阅读 · 0 评论 -
排序相关算法之桶排序
看千遍知识,不如写百行代码。 开始我的FB之旅。从最简单的排序开始。写一下桶排序方法。 输入:一堆待排序的数字(10,23,43,54,323…) 输出:排序好的结果首先简单解释一下什么叫桶排序。首先列出一个数组a[M],我们把这个数组比作大小为M的桶组合, 每个数组元素象征了一个桶。假设待排序的数字总数为N个,将这N个数字丢到M个桶里,丢放规则可以自定,比如可以利用取余法,如原创 2016-10-19 17:24:37 · 286 阅读 · 0 评论 -
函数间隔和几何间隔
在做分类时,通常希望用一条直线来将所有的样本分开,如图所示,这条直线就相当于一个超平面。 这条直线可以认为是一个超平面,其函数为,f(x)可以 取1 或者-1,用(w,b)表示,表示为b,表示为w。 定义函数间隔(用表示)为:原创 2017-01-09 14:56:06 · 9886 阅读 · 0 评论 -
C++常用排序总结
#include<iostream> #include<stdlib.h> #include<time.h> #include<chrono> #include<string> using namespace std; const int MAX_NUM = 1000; //没有任何基于比较的算法能够保证使用少于log(N!)~NlogN次比较将长度为N的数组排序 //选择排序与输入无关,不管输入是原创 2017-04-19 16:52:57 · 327 阅读 · 0 评论