在之前写过的插入排序,归并排序,堆排序,快排都是比较排序,它们个个元素之间的次序依赖于他们之间的比。
计数排序不是一个比较排序的算法,它的所有代码完全没有在输入元素之间的比较。计数排序的基本思想是:对没一个输入元素x,确定小于x的元素个数。用这个信息,就可以把x放到它输出数组上的位置。
#include
#include
using namespace std;
void countsort(...
首先强调一下:
LIST在python中具有非常强大的功能。
定义
定义很简单:在python中,用方括号表示一个list,[ ]
特点
一:可以无限大,就是说list里面所能容纳的元素数量无限
二:list中的元素是任意类型的,可以是int,str,甚至还可以是list,乃至于是以后要学的dict等。而java中的数组和list比较相似,但是数组中的元素只能是一种类型
三:...
详细讲解见《算法导论》8.2节——计数排序。
Java代码如下:
package linetimesort;
/**
* 计数排序假设n个输入元素中的每一个都是介于0到k之间的某个整数,k为某个整数;它
* 通过确定小于等于一个数的数的个数来确定这个数应该放在哪个位置
* @author yuncong
*
*/...
详细讲解见《2015版数据结构高分笔记》8.6节——基数排序。
Java代码如下:
package linetimesort;
import java.util.LinkedList;
import java.util.Objects;
/**
* 基数排序的思想是多关键字排序
* @author yuncong
*
*/
public class RadixSort {
/**...
详细讲解见《算法导论》8.4节——桶排序。
Java代码如下:
package linetimesort;
import java.util.LinkedList;
import sort.InsertSort;
/**
* 桶排序假设输入元素均匀而独立的分布在区间[0,1)上;
* 桶排序的核心思想是,将[0,1)分为n个大小相同的子区间,
* 上一个区间里的元素都比下一个区间里的...
string类型支持长度可变的字符串,C++标准库将负责管理与存储字符相关的内存,以及提供各种有用对的操作。标准库string类型的目的就是满足对字符串的一般应用。...
这个题目思路是很简单的,我们只需要枚举每个定点作为目的地,然后再取其中距离总和最小的作为答案.开始的时候我用的是floyd一次就将所有点之间的最小距离求出来,但是超时了.
后面用的每次枚举一个点就用堆优化的求一次这个点到其余点的最短路,这样就可以过了.代码如下:/*
ID: 15674811
LANG: C++
TASK: butter
*/#include
#include<...
题目:
Given an array and a value, remove all instances of that value in place and return the new length.
The order of elements can be changed. It doesn't matter what you leave beyond the new len...
#include
#include
#include
#include
using namespace std;
// 求首元素、中间元素和尾元素的中位数,将中位数与首元素交换位置
inline void medianAsPivot(int arr[], const int& left, const int& right)
{
const int middle = left+(right...
//链式队列的存储
//杨鑫
#include
#include
typedef int QElemType;
//定义节点
typedef struct QNode
{
QElemType data;
struct QNode *next;
}QNode, *QueuePtr;
//定义指针
typedef struct
{
QueuePtr front;
QueuePtr ...