乱七八糟的算法
下坠丷
每天都在NULLPointerException
展开
-
计数排序:C/C++实现,以空间换取时间
#include<iostream>using namespace std;void count_sort(int* A, int* B, int n);int main(){ int A[10] = { 8,5,3,9,4,1,2,6,0,7 }; int B[10]; count_sort(A, B, 10); for (int i = 0; i < 10; i++) { cout << B[i]; }}void count_sort(in原创 2022-03-10 07:14:21 · 742 阅读 · 0 评论 -
快速排序C/C++实现
快速排序算法思路:选一个元素arr[i]作为key值,使得它前方的全部元素大于它,后方的元素全部小于它,这样arr[i]就处于正确的位置了,对i左边和右边的元素继续调用该方法,则数组可以整体有序。因此我们重点要考虑的是如何实现该方法。先看该方法的具体过程具体思路:这里把右边作为key,那么就从左边开始比较,从左边找到第一个小于key值的数(下标记为i),把他赋给右边的值,然后再从右边这个值的前一个位置开始查起,找到第一个大于key(下标记为j)的值,赋值给左边的下标为i的元素。左右来回查找,当i=j时。原创 2022-03-09 10:05:26 · 609 阅读 · 0 评论 -
蓝桥杯练习题ALGO-1007 印章
问题描述共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。输入格式 一行两个正整数n和m输出格式 一个实数P表示答案,保留4位小数。样例输入2 3样例输出0.7500数据规模和约定 1≤n,m≤20算法分析1 构建数组存储元素,这里的元素为概率,与题目相关的有抽的次数和抽中的印章数目两种情况,因此构建一个(m+1)*(n+1)的数组,数组是从0开始的,为了方便,不使用下标m=0的情况,因此开一个(m+1)(n+1)的数组。m表示抽的次数原创 2022-03-07 07:17:43 · 251 阅读 · 0 评论 -
蓝桥杯ALGO-1006 拿金币
问题描述 有一个N x N的方格,每一个格子都有一些金币,只要站在格子里就能拿到里面的金币。你站在最左上角的格子里,每次可以从一个格子走到它右边或下边的格子里。请问如何走才能拿到最多的金币。输入格式 第一行输入一个正整数n。 以下n行描述该方格。金币数保证是不超过1000的正整数。输出格式 最多能拿金币数量。 样例输入31 3 32 2 23 1 2样例输出11输入的金币用arr数组存储DP算法分析:1 N*N个方格,所以开辟一个二维数组f2 转移方程:每个格子最原创 2022-03-06 18:40:46 · 99 阅读 · 0 评论 -
归并排序c++实现
C++实现归并排序原创 2022-01-09 23:16:48 · 387 阅读 · 1 评论 -
插入排序c++代码实现
直接上代码#include<iostream>using namespace std;const int SIZE = 10;void sort(int* arr,int n);void show(int* arr, int n);int main(){ int arr[SIZE] = { 0,4,5,2,4,6,4,8,9,1 }; sort(arr, SIZE); show(arr, SIZE);}void sort(int* arr, int n){ f原创 2022-01-09 23:20:38 · 837 阅读 · 1 评论