摘要: 快速排序:不断地通过基准数将数值进行左右分区交换排序,直到剩下一个数时返回; 好久没写了,复习一下。 #include<stdio.h> void sort(int *a,int l,int r);//快排 int main(){ int a[10],tem; for(int i=0;i<5;i++ 阅读全文
posted @ 2021-12-11 22:26 m2on 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序通过依次比较相邻元素的大小值,将指定的值(二者中的较大或较小值,这要取决于想要升序还是降序)不断向后移动,在下一次排序时最后的值已经确定是最大值或最小值,所以下一次的排序比较不再与最后一个值比较。循环往复直到所有元素排列完毕(即最后一个未排列数也是第一个未排列数的时候)。 升序的冒泡排序 # 阅读全文
posted @ 2021-12-11 20:57 m2on 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 桶排序比较简单,设置一个足够大的数组,先初始化数组a[m]的元素全部为0。当输入一个值n时改变a[n]的值自加(即a[n]++),以此类推,直到输入结束。 此时a[n]中的值就是输入进去的n的次数,可以用来 升序/降序 打印 不重复或可重复 的元素。 实例: 输入5个属于[0,100010]的正数并 阅读全文
posted @ 2021-12-11 20:44 m2on 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 求一个矩阵的最大子矩阵(最大子矩阵的值规定为矩阵中所有的元素之和) 思路是前缀和把每一行相加,通过作差得到不同行数的 相邻行 之和,再通过求最大子串求出最大子矩阵 总时间限制: 1000ms 内存限制: 65536kB 描述 已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的 阅读全文
posted @ 2021-12-11 20:06 m2on 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 递归求最大子串和。递归函数计算三部分的值,左区间最大子串和,右区间最大子串和,中间最大子串和。 左/右区间最大子串和:这两个子串可以再分别看出两个需要计算最大子串和的串,再进行递归分为左/右区间,直到左区间只剩下一个数,右区间也只剩下一个数的时候 此时为 a b,返回结果从 左最大子串和a ,右最大 阅读全文
posted @ 2021-12-11 01:06 m2on 阅读(93) 评论(0) 推荐(0) 编辑