- 博客(9)
- 收藏
- 关注
原创 计数排序
计数排序的特征当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n + k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1),这使得计数排序对于数据范围很大的数组,需要大量时间和内存。例如:计数排序是用来排序0到100之间的数字的最好的算法,但是它不适合按字母顺序排序人名。但是,计数排序可以用在基数排序中的算法来排序数据范围很大的数组。通俗地理解,例如有 10 个年龄不同的.
2021-04-23 16:19:20
124
原创 组成一个最大的多位整数
题目描述设有n个正整数,将他们连接成一排,组成一个最大的多位整数。如:n=3时,3个整数13,312,343,连成的最大整数为34331213。如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。输入描述:有多组测试样例,每组测试样例包含两行,第一行为一个整数N(N<=100),第二行包含N个数(每个数不超过1000,空格分开)。输出描述:每组数据输出一个表示最大的整数————————————————版权声明:本文为优快云博主「每日一小步」的原创文章,遵循C
2021-04-23 13:39:06
438
原创 快速排序的另一个版本
今天在看算法导论的时候,被这本书简洁的快排大的代码深深的折服,所以现在就让我来总结一下吧。说明:限于本人才疏学浅,所以要是有错误请多多包涵,不要拿高标准来要求我哈首先在之前我写过一个版本的快排了,但是那个不是特别的简洁,有兴趣的朋友可以去看我的“排序算法总结”。和上个版本一样,同样用到了分治的思想,但是,这个代码的不同之处就在于partation的部分,话不多说,先上代码int partation(int a[], int low, int high){ int x = a[high];//主元元
2021-04-23 13:37:08
107
原创 排序算法总结
一、冒泡排序冒泡排序的关键代码如下for (int i = n-1; i>=0; i--) { for (int j = i; j >= 0; j--) { if (p[j]>p[i]) { int temp = p[j]; p[j] = p[i]; p[i] = temp; } } }二、希尔排序希尔排序是插入排序的升级版本,比插排的性能更好关键代码如下int gap = n; int temp; while (
2021-04-18 16:33:53
93
原创 旅行家的预算
题目描述一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格PP和沿途油站数N(N可以为零),油站ii离出发点的距离Di、每升汽油价格Pi(i=1,2,…,Ni=1,2,…,N)。计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出“No Solution”。输入格式第一行,D1,C,D2,P,N。接下来有N行。第i+1行,两个数字,油站i离出发点的距离Di和每
2021-04-17 21:27:47
125
原创 快速排序
题目描述利用快速排序算法将读入的 NN 个数从小到大排序后输出。快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++C++ 选手请不要试图使用 STL,虽然你可以使用 sort 一遍过,但是你并没有掌握快速排序算法的精髓。)输入格式第 11 行为一个正整数 NN,第 22 行包含 NN 个空格隔开的正整数 a_iai ,为你需要进行排序的数,数据保证了 A_iAi 不超过 10^9109。输出格式将给定的 NN 个
2021-04-11 11:25:57
76
原创 C++实现排序问题
冒泡题目描述在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。于是他就负责用这座桥将进站的车厢按车厢号从小到大排列。他退休后,火车站决定将这一工作自动化,其中一项重要的工作是编一个程序,输入初始的车厢顺序,计算最少用多少步就能将车厢排序。输入格式共两行。第一行是车厢总数N( \le 10000)N(≤10000)。第二行是NN个不同的数表示初
2021-04-10 23:23:53
215
原创 洛谷循环题解--打印直角三角形
题目描述给出n(1\le n\le13)n(1≤n≤13),请输出一个直角边长度是 nn 的数字直角三角形。所有数字都是 2 位组成的,如果没有 2 位则加上前导 0。输入格式无输出格式无输入输出样例输入 5输出010203040506070809101112131415#include<iostream>using namespace std;int main(){ int n; int count = 0; cin >> n; for
2021-04-07 22:49:08
542
原创 对字符串进行去重操作
#include<iostream>#include<algorithm>#include<random>#include<cmath>using namespace std;int main(){ string str; cout << "请输入一个字符串:"; cin >> str; int len = str.length(); for (int i = 0; i < len; i++) { .
2021-04-01 23:24:50
176
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人