- 博客(7)
- 问答 (3)
- 收藏
- 关注
原创 C语言 计数排序算法
计数排序的基本思想:对每一个输入元素 x ,确定小于 x 的元素个数。利用这一信息,就可以直接把 x 放在输出数组中对应的位置上。例如,假如有 17 个元素小于 x,则 x 就应该放在第 18 个输出位置上。当数组中有相同的元素时,要略微修改这个方案,因为两个元素不能放在同一个位置上。我们把计数排序称为非比较排序,因为计数排序的实现完全不依赖于任何元素之间的大小关系。与计数排序相比,冒泡排序则是一种典型的比较排序。计数排序牺牲了空间复杂度,它必须在内存中开辟新的空间来存放排序后的值,并且返回指向这个
2021-12-01 20:07:50
1024
原创 C语言 堆排序算法
各个函数的功能:maxHeapify 的参数为数组 a 和需要操作的下标 i。在调用 maxHeapify 的时候,需要确保根节点为 LEFT(i) 和 RIGHT(i) 的二叉树都是最大堆。若 a[i] 小于其孩子,则让 a[i] 的值在最大堆中逐级下降,从而使得以下标 i 为根节点的子树遵循最大堆的性质。若 a[i] 大于其孩子,那么无需进行任何操作。 buildMaxHeap 的参数为数组 a 和数组长度 length。不难知道数组 a[length/2, length-1] 中的元素都是树的.
2021-11-30 18:59:31
918
原创 C语言 分治法求解最大子数组
数组A[low, high]的任何连续子数组A[i, j]所处的位置必然是以下三种情况之一:完全位于子数组A[low, mid]中,因此low≤i≤j≤mid。 完全位于子数组A[mid+1, high]中,因此mid<i≤j≤high。 跨越了中点,因此low≤i≤mid<j≤high。我们可以利用分治法递归地求解A[low, mid]和A[mid+1, high]的最大子数组,因为这两个子问题仍是最大子数组问题,只是规模更小。因此,剩下的全部工作就是寻找跨越中点的最大子数组,然后.
2021-11-29 14:30:46
1278
原创 C语言 归并排序算法
归并排序算法完全遵循分治模式。直观上其操作如下:分解:分解待排序的n个元素的序列成各具n/2个元素的两个子序列。解决:使用归并排序递归地排序两个子序列。合并:合并两个已排列的子序列以产生已排序的答案。随着算法自底向上地推进,待合并的已排好序的各序列长度不断增加,最后全部合并成等于原序列长度的一个新的已排列的序列。// 归并排序// low, mid, high 均为数组下标#include <stdio.h>#include <stdlib.h>#d
2021-11-28 10:39:40
905
原创 CodeForces 1305C - Kuroni and Impossible Calculation 题解
Problem - C - CodeforcesTo become the king of Codeforces, Kuroni has to solve the following problem.He is givennnnumbersa1,a2,…,ana1,a2,…,an. Help Kuroni to calculate∏1≤i<j≤n|ai−aj|. As result can be very big, output it modulomm.If you are n...
2021-11-27 10:38:44
762
原创 CodeForces 71A - Way Too Long Words 题解
Sometimes some words like "localization" or "internationalization" are so long that writing them many times in one text is quite tiresome.Let's consider a wordtoo long, if its length isstrictly morethan10characters. All too long words should be rep...
2021-11-26 11:21:16
314
原创 TJOJ 1018:Sum 题解
题目描述小香猪上算法课的时候,老师布置了一个作业题:给你一个正整数n(1 <= n <= 10,000,000),现在请问你有多少种方法能把n拆成几个连续的正整数之和。比如n = 15:15 = 15;15 = 7 + 8;15 = 4 + 5 + 6;15 = 1 + 2 + 3 + 4 + 5;又如 n = 10:10 = 10;10 = 1 + 2 + 3 + 4。输入输入也许会有多组数据,每组数据由一行组成,每一行仅包含一个正整数n,所有输入以0结束。输.
2021-11-25 15:42:35
465
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人