- 博客(67)
- 收藏
- 关注
原创 归并排序-bottom-up(非递归版本)
Bottom-up mergesort由于之前讨论的归并排序时用到的是递归的方法;而递归会带来很大的开销,本节讨论由底向上的非递归版本的归并排序思想: 对于给定的数组,设置变量sz为每次归并元素的个数。 首先sz为1,也就是每单个元素归并(如:45和23归并成23、45),然后设置sz=sz+sz、也就是2,也就是使得数组中每两个元素归并;依次类推。 图解: 代码:packag
2017-09-24 21:00:58
1132
原创 归并排序-优化
merge sort improvements归并排序的改进:改进1: 归并排序适合n比较大的算法;我们可以在递归时,当递归到比较小的子序列时,使用插入排序。 代码:package mergesort;public class MergeSort { public static int CUTOFF = 7; public static void main(String[
2017-09-24 17:01:28
530
原创 归并排序
merge sort归并排序的总体思想:● 先把序列分成两个部分,对每个部分先排序。 ● 对已经分别有序的两个序列,进行合并。合并: 对于要合并的数组 a[]; 先把数组a[] 中的内容复制到辅助数组 aux[]中。 两个指针i、j 分别指向aux[]中两个有序序列的首元素。 从i、j所指的元素中选择小的元素存回数组a[]中;同时更新i、j指针。 如果i、j中有指针已经指向了
2017-09-24 15:19:07
338
原创 文件操作1
#include <iostream>#include <fstream>#include <vector>using namespace std;struct Points{ // 用于存储“点”的x、y坐标 int x; int y;};int main(int argc, const char * argv[]) { string ifilename;
2017-09-05 19:50:23
295
原创 magic number
定义:思想:// C program to generate odd sized magic squares#include<stdio.h>#include<string.h>// A function to generate odd sized magic squaresvoid generateSquare(int n){ int magicSquare[n][n]; //
2017-09-05 15:26:53
703
原创 vector摘记
vector摘记在循环程序时,当重新初始化vector对象时,需要用刀resize函数v.resize(0); //每次循环,需要把v置空实例: 输出目录结构(路径打印)
2017-03-08 20:22:02
322
原创 字符串处理之string
字符串处理之string 前言: 在机试当中,对于字符串的处理中使用string的话往往能够带来方便。 实例: 输出目录结构(路径打印)string输入输出问题。在机试时,为了节约时间,使用scanf和printf来输入输出字符串,但是该方法不能够输入输出string类型的字符串。解决办法://输入时char str[55];scanf("%s", str);s
2017-03-08 20:08:44
298
原创 sort对二维char数组排序?
C++中如何用std::sort对二维char数组排序? 问题描述: 定义一个 char str[10005][15],要对10000个char数组 风格的字符串排序. 典型错误做法:bool cmp(char a[], char b[]){ int temp = strcmp(a,b); return temp<0;}......sort(str
2017-03-08 14:54:13
2708
原创 九度1097:取中值
九度1097:取中值 题目来源: 题目1097:取中值 注意:中值不需要排序#include <stdio.h>#include <stdlib.h>using namespace std;int s1[1000001]; int s2[1000001];int main(){ int n; while(scanf("%d", &n)!=EOF){
2017-03-06 03:02:59
245
原创 c语言scanf相关
c语言scanf相关1. 空格相关: 如果你用scanf()函数的话,遇到空格会返回; 如果需要输入一个字符串,但是有空格怎么办:但是有时候用该方法时,会提示gets不安全,怎么办?char str[10];scanf ("%[^\n]%*c", str);%[^\n]含义是从stdin读取输入保存到str,直到遇到第一个\n;而%*c则丢弃掉这个\n。注意:别忘了加%*c,不然输
2017-03-04 16:01:26
339
原创 子序列的最大和
子序列的最大和问题来源及讲解#include <stdio.h>using namespace std;int maxSubArraySum(int a[],int size){// int size = sizeof(a)/sizeof(int); //注意:千万不能再调用函数里面来求数组的大小,因为传入的只是数组的首位元素的地址。所以数组元素的大小要一并传入。 int ma
2017-03-04 12:47:24
311
原创 KMP模式匹配中匹配的总子串数
POJ_3461_Oulipo 题目来源: POJ_3461_Oulipo 类似题目:题目1094:String Matching 2006上海交通大学机试真题#include<stdio.h>#include<string.h>int next[10001];int len1,len2,total;char str[10001],buf[1000001];void
2017-03-01 15:18:38
338
原创 扔鸡蛋问题
扔鸡蛋问题 问题来源: 经典的动态规划问题,题设是这样的: 如果你有2颗鸡蛋,和一栋36层高的楼,现在你想知道在哪一层楼之下,鸡蛋不会被摔碎,应该如何用最少的测试次数对于任何答案楼层都能够使问题得到解决。 如果你从某一层楼扔下鸡蛋,它没有碎,则这个鸡蛋你可以继续用 如果这个鸡蛋摔碎了,则你可以用来测试的鸡蛋减少一个 所有鸡蛋的质量相同(都会在同一楼层以上摔碎)
2017-02-26 23:32:18
351
原创 Coin Change
Coin Change 问题描述: 给定一些货币的面额,如coins=[1,5,6,8];假定每种货币有无数个; 再给定总共金额,如total=11; 求最少需要多少个货币能够得到total的总额。
2017-02-26 22:18:28
272
原创 最大子方矩阵
Maximal Square 问题描述: 给定矩阵,矩阵中的元素为0或者1; 找出最大的子矩阵:该矩阵中所有的元素都为1,且为方阵。
2017-02-23 21:56:08
574
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人