摘要: 2.分并排序 方法 1.确定分界点:mid (0+n)/2 2.递归排序left,right(分成两个数组) 3.(重点)归并 合二为一 用两个指针从开头比较 (稳定) 遇到相同的先把第一个输出,保证数组里的相同数的位置是不变的 先分成好几段 再和并 代码 优雅的分并 #include<iostre 阅读全文
posted @ 2022-05-18 21:39 scanfppp 阅读(43) 评论(0) 推荐(0)
摘要: 1.快排 方法 1.确定分界点(可以是p[0],p[n],p[n/2],随机) 2.(重点)调整区间(将<=n的放到左侧,把>=n的放到右侧)分成两部分 用两个指针分别指两端,先后向中间靠拢 3.递归处理左右两边。 (不稳定) 可以想办法让每个数不一样:比如把里面的元素变成二元组a=><a,i>。 阅读全文
posted @ 2022-05-16 19:46 scanfppp 阅读(169) 评论(0) 推荐(0)
摘要: 0.递归 递归就是有去(递去)有回(归来),如下图所示。“有去”是指:递归问题必须可以分解为若干个规模较小,与原问题形式相同的子问题,这些子问题可以用相同的解题思路来解决,就像上面例子中的钥匙可以打开后面所有门上的锁一样;“有回”是指 : 这些问题的演化过程是一个从大到小,由近及远的过程,并且会有一 阅读全文
posted @ 2022-05-14 16:16 scanfppp 阅读(59) 评论(0) 推荐(0)
摘要: -5.C++读入一行字符串 cin.getline(char * str, int size_t, char delim) 头文件: #include<iostream> 参数1:字符数组 参数2:读入字符串长度 参数3:终止符 示例: char str[105]; cin.getline(str, 阅读全文
posted @ 2022-04-22 16:50 scanfppp 阅读(271) 评论(0) 推荐(0)
摘要: + ios::sync_with_stdio(false);//加速几百毫秒 cin.tie(0); // 接近scanf cout.tie(0); 阅读全文
posted @ 2022-03-01 12:03 scanfppp 阅读(36) 评论(0) 推荐(0)
摘要: -3.由数据范围反推算法复杂度及算法内容 阅读全文
posted @ 2022-03-01 11:29 scanfppp 阅读(22) 评论(0) 推荐(0)