程序设计复习_第1页
程序设计复习_第2页
程序设计复习_第3页
程序设计复习_第4页
程序设计复习_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 输出图形 本题 100 分 2 2 旋转数字 本题 100 分 3 3 求和 本题 100 分 5 4 多项式相乘 7 5 二叉树 10 6 二叉树 1 14 7 哈夫曼树及编码 100 分 16 8 哈夫曼树 编码及译码 100 分 19 9 判定连通图 100 分 21 10 Least Time 最短时间 100 分 24 11 取序号判定素数 26 12 名次与分数 28 13 快速排序 100 分 32 14 堆排序 100 分 33 15 归并排序 100 分 35 16 基数排序 100 分 37 17 表达式求值 40 18 取数相加 42 19 大整数排序 45 1 1 输出图形 输出图形 本题本题 100 分分 graph cpp 题目描述 编写程序打印 n 行如下图形 其中 1 n 26 n 4 输出图形如下 D DCD DCBCD DCBABCD 输入 输入文件 graph in 包含 1 个整数 输出 输出文件 graph out 输入输出样例 1 graph in graph out 4 D DCD DCBCD DCBABCD 输入输出样例 2 graph in graph out 7 G GFG GFEFG GFEDEFG GFEDCDEFG GFEDCBCDEFG GFEDCBABCDEFG 限制 1 n 26 include using namespace std int main freopen graph in r stdin freopen graph out w stdout int i j n cin n for j 1 j n j for i 1 i n j i 2 cout for i 1 i j i cout char A n i for i 1 i j 1 i cout char A n i j cout endl return 0 2 旋转数字 旋转数字 本题本题 100 分分 rotation cpp 题目描述 编写程序打印 n 行如下菱形图形 1 n 99 图形有 n 行 n 列个整数 图形从第 1 行的中间开始 数字分别是 1 2 n n 1 n n 并且顺时针向中间转入 如果 1 个数 据项宽度不足 n n 位 用 0 补足到 n n 位 提醒 图案中没有数字的地方用空格填满 每 行最后一个数字后面没有多余的空格 输入 输入文件 rotation in 包含 1 个整数 n 输出 输出文件 rotation out 是一个菱形图形 图形从第 1 行的中间开始 数字分别是 n n n n 1 n n 2 1 并且顺时针向中间转入 输入输出样例 1 例如 n 7 输出 01 24 02 23 25 03 22 40 26 04 21 39 41 27 05 20 38 48 42 28 06 19 37 47 49 43 29 07 18 36 46 44 30 08 17 35 45 31 09 16 34 32 10 15 33 11 14 12 13 限制 1 n 99 提示 m 4 i 15 printf 0 d m i 这里用 表示系数待定 m 即为指定的宽度 3 上面语句输出 0015 数据宽度为 4 不足 4 位 前补 0 printf c m 左边语句输出 即输出 4 个空格 include stdio h const int N0 2 100 1 10 int a N0 N0 0 struct node int row col dir 4 1 1 1 1 1 1 1 1 int main int i j n int row col row1 col1 d m 0 freopen rotation in r stdin freopen rotation out w stdout scanf d row 1 col n d 0 int t n n while t 0 m t 10 for i 1 i n n i a row col i row1 row dir d row col1 col dir d col if row1 1 col12 n 1 col1 2 n 1 a row1 col1 0 d d 1 4 row1 row dir d row col1 col dir d col row row1 col col1 for i 1 i 2 n 1 i for j 1 j 2 n 1 j if a i j 0 printf 0 d m a i j else if i n 4 printf n return 0 3 求和 求和 本题本题 100 分分 total cpp 问题描述 有 1 个 n n 的矩阵 从左上到右下称为主斜线 倾角 135 从右上到左下称为次斜 线 倾角 45 在主斜线上最大 次斜线上最小的元素称为该矩阵的斜线鞍点 求出该矩 阵所有斜线鞍点的和 如 5 5 的矩阵 3 2 5 98 10 44 12 1 12 8 67 61 45 7 19 12 21 33 56 3 35 36 78 90 19 次斜线 主斜线 元素 7 为上面矩阵的一个斜线鞍点 元素 10 和 19 也是上面矩阵的斜线鞍点 输入 输入文件 total in 第一行是一个整数 n 1 n 100 接下去是 n 行 n 列的矩阵 矩阵的每个元素都是整数 输出 输出文件 total out 也只有 1 个整数 即该矩阵所有斜线鞍点的和 0 和 1010 输入输出样例 1 total intotal out 5 3 2 5 98 10 44 12 1 12 8 67 61 45 7 19 12 21 33 56 3 35 36 78 90 19 36 输入输出样例 2 total intotal out 4 1 2 17 13 10 15 16 9 18 8 19 5 11 7 9 10 0 include define NO 100 int main 5 freopen total in r stdin freopen total out w stdout int i j x y max min n 0 sum 0 scanf d int a new int n i 1 while i n a i new int n j 1 while j n scanf d a i j i 1 while i n j 1 while j0y while x n break x y x i y j while x 0y while x 0 if a x y a i j min 0 break x y if max min continue else sum a i j 6 printf d n sum i 1 while inext new ND p p next p c c p e e p next NULL return head void printLink ND head ND p head next while p printf d d p c p e p p next printf n void freeLink ND head ND p while head p head head head next delete p ND addPoly ND ha ND hb ND hc pc pa ha next pb hb next hc pc new ND int c e while pa pb if pa e pa e pa pa next 8 else if pb e pb e pb pb next else c pa c pb c e pa e pa pa next pb pb next if c pc next new ND pc pc next pc c c pc e e pc next NULL return hc ND oneXmulty ND pa ND hb ND hc pc pb hb next hc pc new ND while pb pc next new ND pc pc next pc c pa c pb c pc e pa e pb e pb pb next pc next NULL return hc ND multyXmulty ND ha ND hb ND hc ht pa ha next hc new ND hc next NULL while pa ht oneXmulty pa hb hc addPoly hc ht 9 freeLink ht pa pa next return hc int main ND ha hc freopen conv in r stdin freopen conv out w stdout hc createLink while true ha createLink if ha next NULL break hc multyXmulty hc ha freeLink ha printLink hc freeLink hc return 0 5 二叉树 二叉树 bTree cpp c 题目描述 已知二叉树的先序遍历序列和中序遍历序列 输出其后序遍历序列和层次序遍历序列 输入 输入文件 bTree in 有二行 分别是二叉树的先序遍历序列和中序遍历序列 输出 输出文件 bTree out 包含二行 分别是上述二叉树的后序遍历序列和层次序遍历序列 输入输出样例 1 bTree in bTree out abdeijfcgh dijefbghca jifedhgcba abdcegifhj 数据限制 所有序列字串长度0 tree root lch root 1 createTree root 1 pri 1 mid if strlen p 1 0 tree root rch root k 1 createTree root k 1 pri k 1 p 1 void postOrder int root if root postOrder tree root lch postOrder tree root rch printf c tree root data void layerOrder int root int qu N0 5 f 0 r 0 int t if root 0 return qu r root while r f t qu f printf c tree t data if tree t lch qu r tree t lch if tree t rch qu r tree t rch void showTree int root int tab char ch if root 0 return int i 11 for i 1 irh lh rh int leafNumber int root if root 0 return 0 if tree root lch 0 return leafNumber tree root lch leafNumber tree root rch int main char pri N0 1 mid N0 1 freopen Btree in r stdin freopen Btree out w stdout gets pri gets mid createTree root pri mid postOrder root printf n layerOrder root printf n showTree root 1 T printf d n high root printf d n leafNumber root return 0 方法二 include include struct Node 12 char ch Node lch Node rch root char pri 105 mid 105 Node buildTree char pri char mid char pos strchr mid pri if pos Node temp new Node temp ch pos temp lch temp rch NULL pos 0 int k strlen mid if pri 1 temp lch buildTree pri 1 mid if pos 1 temp rch buildTree pri k 1 1 pos return temp return NULL void aftShowTree Node root if root NULL aftShowTree root lch aftShowTree root rch putchar root ch void levShowTree Node root Node arr 105 0 p int top 0 tail 0 arr tail root while tail top p arr top if p lch arr tail p lch if p rch 13 arr tail p rch putchar p ch void free Node root if root if root rch free root rch if root lch free root lch delete root int main void gets pri gets mid root buildTree pri mid aftShowTree root puts levShowTree root puts free root return 0 6 二叉树 二叉树 1 bTree1 cpp c 题目描述 已知一颗二叉树的先序遍历序列和中序遍历序列 输出该树的高度和该树的叶子数 输入 输入文件 bTree1 in 有二行 分别是一颗二叉树的先序遍历序列和中序遍历序列 输出 输出文件 bTree1 out 只有一行 包含两个整数 分别是该树的高度和叶子数 两个整 数之间用一个空格隔开 输入输出样例 1 bTree1 in bTree1 out abdeijfcgh dijefbghca 6 3 数据限制 1 所有序列字串长度 100 include stdio h 14 include string h struct Tr char da Tr lchild rchild Tr Renew char bch char mch int len Tr root int l char temp if lenda bch for temp mch templchild Renew bch 1 mch l root rchild Renew bch 1 l temp 1 len 1 l return root void freet Tr root if root lchild NULL freet root lchild if root rchild NULL freet root rchild delete root return int depth Tr root int h lh rh if root NULL h 0 else 15 lh depth root lchild rh depth root rchild if lh rh h lh 1 else h rh 1 return h int leaf Tr root int num 0 if root NULL if root lchild NULL else num leaf root lchild leaf root rchild return num int main int len char bch 100 mch 100 Tr root freopen Btree1 in r stdin freopen Btree1 out w stdout gets bch gets mch len strlen bch root Renew bch mch len printf d d depth root leaf root freet root return 0 7 哈夫曼树及编码 哈夫曼树及编码 100 分 分 huffman cpp 题目描述 给定一篇用于通信的英文电文 统计该电文中每个字符出现的频率 按频率左小右大 的方法为这些字符建立哈夫曼 Huffamn 树 并编出每个字符的哈夫曼树码 输出该电文的 哈夫曼码译文 输入 输入文件 huffman in 是一篇用于通信的英文电文 16 输出 输出文件 huffman out 输出该电文的哈夫曼码译文 输入输出样例 1 huffman in huffman out aaccdddbacbcddddddd011011000011101001100010001111111 数据限制 2 英文电文字符数 10000000 include stdio h include string h const int N0 256 const int INF 100000 struct node1 int w lch rch parent ht N0 1 struct node2 char ch char code N0 1 int start hc N0 1 int n root char str INF void readData int a N0 0 p 0 char ch while scanf c ch a a 97 1 ch b a 98 1 a 97 3 a 98 2 a 99 4 a 100 10 str p ch str p 0 n 0 int i for i 0 i 256 i if a i n ht n w a i hc n ch i void selectMin int t int s1 int s2 int min1 INF min2 INF i for i 1 i t i 17 if ht i parent 0 if ht i w min1 min2 min1 s2 s1 min1 ht i w s1 i else if ht i w min2 min2 ht i w s2 i void createHtHc int s1 s2 w child parent i root 2 n 1 for i n 1 i root i selectMin i 1 ht i w ht s1 w ht s2 w ht i lch s1 ht i rch s2 ht s1 parent ht s2 parent i for i 1 i n i child i parent ht child parent while child root if child ht parent lch hc i code hc i start 0 else hc i code hc i start 1 child parent parent ht child parent void str2code char str char code int i j k p 0 for i 0 str i i for j 0 j 0 k code p hc j code k 18 code p 0 int main char code INF freopen huffman in r stdin freopen huffman out w stdout readData createHtHc str2code str code puts code return 0 8 哈夫曼树 编码及译码 哈夫曼树 编码及译码 100 分 分 codeToTxt cpp 题目描述 给定 2 个输入文件 第 1 个输入文件是用于通信的英文电文 统计该电文中每个字符 出现的频率 按频率左小右大的方法为这些字符建立哈夫曼 Huffamn 树 并编出每个字符 的哈夫曼树码 第 2 个输入文件是已经按第 1 个输入文件的英文电文编好的哈夫曼码 输 出该哈夫曼码的对应的英文电文 输入 第 1 个输入文件为 huffman in 是用于通信的英文电文 第 2 个输入文件 codeToTxt in 是 已经按第 1 个输入文件编好的哈夫曼码 输出 输出文件 codeToTxt out 输出 codeToTxt in 文件内容的英文电文 输入输出样例 1 huffman in codeToTxt incodeToTxt out aaccdddbacbcddddddd011111011000011101001100010001111adddaccdddbacbcdddd 数据限制 2 英文电文字符数 10000000 include stdio h include string h const int N0 256 const int INF 100000 struct node1 int w lch rch parent ht N0 1 struct node2 char ch char code N0 1 int start hc N0 1 19 int n root char str INF void readData int a N0 0 p 0 char ch while scanf c ch a a 97 1 ch b a 98 1 a 97 3 a 98 2 a 99 4 a 100 10 str p ch str p 0 n 0 int i for i 0 i 256 i if a i n ht n w a i hc n ch i void selectMin int t int s1 int s2 int min1 INF min2 INF i for i 1 i t i if ht i parent 0 if ht i w min1 min2 min1 s2 s1 min1 ht i w s1 i else if ht i w min2 min2 ht i w s2 i void createHtHc int s1 s2 w child parent i root 2 n 1 for i n 1 i root i selectMin i 1 ht i w ht s1 w ht s2 w ht i lch s1 ht i rch s2 20 ht s1 parent ht s2 parent i for i 1 i n i child i parent ht child parent while child root if child ht parent lch hc i code hc i start 0 else hc i code hc i start 1 child parent parent ht child parent void code2str char code char str char p code q str int r root while p if p 0 r ht r lch else r ht r rch if ht r lch 0 q hc r ch r root p q 0 int main char code INF freopen huffman in r stdin readData freopen codeToTxt in r stdin gets code freopen codeToTxt out w stdout createHtHc code2str code str puts str return 0 21 9 判定连通图 判定连通图 100 分 分 dist cpp 题目描述 给你一张描述 n 个城镇的公路表 n n 的对称矩阵 A 请判定这 n 个城镇是否是连通 的 公路表中表示了任意两个城镇的连通情况 矩阵元素 a i j 0 表示城镇 i j 不连通 a i j 0 表示城镇 i 到城镇 j 的距离 输入 输入文件 dist in 的第一行为一个自然数 n 1 n 30 接着 n 行 每行 n 个整数 是这 n 个城镇的公路表 元素的值小于 1000 输出 输出文件 dist out 包括一行 如果 n 个城镇是连通的输出 Yes 否则输出 No 输入输出样例 1 dist indist out 6 0 1 3 4 9 0 1 0 9 9 0 0 3 9 0 0 6 8 4 9 0 0 5 7 9 0 6 5 0 4 0 0 8 7 4 0 Yes 输入输出样例 2 dist indist out 6 0 1 0 4 9 0 1 0 0 9 0 0 0 0 0 0 0 8 4 9 0 0 0 0 9 0 0 0 0 0 0 0 8 0 0 0 No 数据限制 1 n 30 include stdio h const int N0 100 const int INF 100000 int map N0 N0 int n void readData int i j t scanf d for i 1 i n i for j 1 j n j scanf d 22 if i j map i j 0 else if t 0 map i j INF else map i j t void DFS int x int s N0 top 0 mark N0 0 p i printf d x mark x 1 s top x push while top p s top peak for i 1 in top pop printf n void BFS int x int q N0 f 0 r 0 mark N0 0 p i printf d x mark x 1 q r x while r f p q f for i 1 i n i if i p mark i 1 q r i printf n void check int x int s N0 top 0 mark N0 0 p i 23 int num 0 num printf d x mark x 1 s top x push while top p s top peak for i 1 in top pop if num n printf Yes n else printf No n int main freopen dist in r stdin freopen dist out w stdout readData check 1 return 0 10 Least Time 最短时间 最短时间 100 分分 Least cpp c Description You are a spy and you have stolen some top secret of the enemy now you are to find a way which takes you least time to escape There are some many cross points and some many roads even two cross points there can be multiple roads You can assume that the cross points are numbered from 1 to n Cross point 1 is your starting point and you need to go to cross point n All roads are bidirectional 双向的 Input The first line contains two integers n and m 1 n 200 0 m 10000 number of cross points and number of roads respectively Next m lines has three integers i j k i j 1 k 10000 indicating there is a road of length k connecting cross point i to cross point j Output 24 Output one number the shortest distance from cross point 1 to corss point n If there is no path exist output 1 No extra spaces are allowed Sample Input Sample Output 1 Least inLeast out 4 6 1 2 5 1 3 4 2 4 8 3 4 9 1 2 10 2 4 11 13 Sample Input Sample Output 2 Least inLeast out 6 7 1 2 5 1 3 4 2 4 8 3 4 9 5 6 10 2 4 11 6 5 15 1 include stdio h const int N0 205 const int INF 1000000 int map N0 N0 int n m void readData int i j k scanf d d for i 1 i n i for j 1 j n j if i j map i j INF while scanf d d d map j i k 25 void dijkstra int x int dist N0 mark N0 0 int i j k min mark x 1 for i 1 i n i dist i map x i for i 1 i n i min INF for j 1 j n j if mark j 0 k j if min INF break mark k 1 for j 1 jdist k map k j dist j dist k map k j if dist n INF printf d dist n else printf 1 int main freopen Least in r stdin freopen Least out w stdout readData dijkstra 1 return 0 11 取序号判定素数 取序号判定素数 prime cpp c 题目描述 一个数组 a 0 到 a n 1 存放有 n 整数 其中 2 n 100 求出 n 整数中最大数 a m1 和 次最大数 a m2 并判定 m1 m2 是否为素数 输入 输入文件 prime in 包含 n 个整数 输出 输出文件 prime out 包含两行第 1 行是 m1 和 m2 第 2 行若 m1 m2 为素数则输出 26 Yes 否则输出 No 输入输出样例 1 prime in prime out 2 3 5 1 5 8 2 1 5 2 Yes 输入输出样例 2 prime in prime out 123456789 33333 777 54321 999990 4 No 限制 10 10 整数 a i 10 10 2 n 100 include stdio h const int MAX 100 void prime int a int l int i m1 m2 flag 0 m1 m2 0 for i 1 ia m1 m1 i if m1 0 m2 1 for i 1 ia m2 m2 i printf d d n m1 m2 for i 1 i m1 m2 i if m1 m2 i 0 flag if flag 2 printf Yes else printf No int main 27 freopen prime in r stdin freopen prime out w stdout int a MAX len 0 i 0 while true if scanf d i len prime a len return 0 12 名次与分数 名次与分数 score cpp c 问题描述 输入数据是我校 ACM 集训队参加某次 ACM 网络联赛的成绩和账号 数据分上下两部 分 数据上半部分第 1 列为名次 第 2 列为账号 第 3 列为 AC 完成的 题目数 数据 下半部分为我校 ACM 集训队队员的姓名和账号 任务 1 将我校 ACM 集训队队员的成绩排 序 即做一个队内排名 任务 2 计算每个队员的成绩 成绩计算方法 没有参加网赛 成绩 0 有参加网赛 网赛 AC 0 题 成绩 10 网赛 AC 题数 1 成绩 101 队内名次 sqrt 队内名次 注 sqrt 为平方根 例如李饶立同学队内名次 1 则其成绩 101 1 sqrt 1 100 000 再如林哲斌同学队内名次 2 则其成绩 101 2 sqrt 2 98 172 输出结果为两列 姓名和成绩 成绩保留 3 位小数 第 4 位四舍五入 按成绩由高到低排 列 输入 输入文件 score in 为 ACM 网络联赛的成绩和帐号 输出 输出文件 score out 结果为按成绩由高到低排序的两列 姓名和成绩 成绩保留 3 位小数 第 4 位四舍五入 输入输出样例 1 score in score out 1SZU2011 FM1 0024 2ZHBIT2011 FM1 0013 3SZU2011 FM1 0143 4FJUT2011 FM1 001 3 5SZU2011 FM1 0043 6SZU2011 FM1 0133 李饶立 100 000 林哲斌 98 172 李绍江 95 804 林剑辉 93 000 李福彬 89 820 谢荣祥 86 303 29 7FJAU2011 FM1 002 3 8SZU2011 FM1 0103 9FJUT2011 FM1 004 3 10 FJUT2011 FM1 009 3 11 FJUT2011 FM1 002 3 12 ZHBIT2011 FM1 0023 13 FJAU2011 FM1 007 2 14 SZU2011 FM1 0082 15 FJAU2011 FM1 018 2 16 FJAU2011 FM1 005 2 17 SZU2011 FM1 0012 18 SZU2011 FM1 0092 19 SZU2011 FM1 0072 20 FJAU2011 FM1 022 2 21 FJAU2011 FM1 011 2 22 ZHBIT2011 FM1 0032 23 FJUT2011 FM1 011 2 24 FJAU2011 FM1 015 2 25 FJAU2011 FM1 006 2 26 FJAU2011 FM1 008 2 27 FJUT2011 FM1 010 2 28 SZU2011 FM1 0182 29 FJNU2011 FM1 010 2 30 SZU2011 FM1 0152 31 FJAU2011 FM1 014 2 32 FJAU2011 FM1 020 2 33 FJAU2011 FM1 009 2 34 FJUT2011 FM1 006 1 35 SZU2011 FM1 0111 36 SZU2011 FM1 0051 37 FJUT2011 FM1 012 1 38 FJAU2011 FM1 025 1 39 FJUT2011 FM1 007 1 40 FJAU2011 FM1 001 1 41 FJUT2011 FM1 008 1 42 FJAU2011 FM1 023 1 罗雄飞 82 480 李光泽 78 373 程千兴 74 000 沈炬 69 377 李华均 64 517 黄艳丽 59 431 陈贻劲 54 128 朱智佳 48 617 苏桂明 42 905 魏述文 37 000 杨少群 10 000 卢丽娜 10 000 彭秦中 0 000 陈竞郴 0 000 吴胜杰 0 000 郑志强 0 000 邱一潮 0 000 林雪勇 0 000 吴灿南 0 000 30 43 FJUT2011 FM1 013 1 44 FJNU2011 FM1 009 1 45 FJUT2011 FM1 005 1 46 FJAU2011 FM1 024 1 47 FJNU2011 FM1 020 0 48 FJAU2011 FM1 012 0 49 FJAU2011 FM1 017 0 50 SZU2011 FM1 0160 姓名账号 朱智佳 FJAU2011 FM1 001 李饶立 FJAU2011 FM1 002 彭秦中 FJAU2011 FM1 003 陈竞郴 FJAU2011 FM1 004 林剑辉 FJAU2011 FM1 005 李光泽 FJAU2011 FM1 006 林哲斌 FJAU2011 FM1 007 程千兴 FJAU2011 FM1 008 黄艳丽 FJAU2011 FM1 009 吴胜杰 FJAU2011 FM1 010 谢荣祥 FJAU2011 FM1 011 杨少群 FJAU2011 FM1 012 郑志强 FJAU2011 FM1 013 沈炬FJAU2011 FM1 014 罗雄飞 FJAU2011 FM1 015 邱一潮 FJAU2011 FM1 016 卢丽娜 FJAU2011 FM1 017 李绍江 FJAU2011 FM1 018 林雪勇 FJAU2011 FM1 019 李华均 FJAU2011 FM1 020 吴灿南 FJAU2011 FM1 021 李福彬FJAU2011 FM1 022 苏桂明FJAU2011 FM1 023 魏述文FJAU2011 FM1 024 陈贻劲FJAU2011 FM1 025 include stdio h 31 include math h include string h const int N0 1000 struct node int mc char name 15 num 30 int ac double score student N0 1 int n 0 totalNumber 0 void readData char s 1000 bool data1 true while gets s NULL if strcmp s 0 continue if strstr s 姓名 NULL continue if data1 n totalNumber student n mc n sscanf s d s d if student n ac 0 student n score 10 else student n score 101 n sqrt n if data1 int i char name1 15 num 30 sscanf s s s name1 num for i 1 in totalNumber strcpy student totalNumber name name1 student totalNumber score 0 32 void printData int i for i 1 i totalNumber i printf s 3f n student i name student i score int main freopen score in r stdin freopen score out w stdout readData printData return 0 13 快速排序 快速排序 100 分 分 quickSort cpp 题目描述 给定 n 个整数作从小到大快速排序 每次分组以本组的左边第 1 个数作标准元素 用 两个指针向中间移动的分组策略 完成快速排序 输出分组次数 输入 输入文件 quickSort in 的第一行为一个自然数 n 1 n 30000 接着若干行共有 n 个 整数 每个整数之间用空格隔开 输出 输出文件 quickSort out 包括一个整数 完成快速排序整个过程的分组次数 输入输出样例 1 quickSort inquickSort out 4 5 6 1 2 2 输入输出样例 2 quickSort inquickSort out 4 1 6 2 5 3 数据限制 1 temp if i j a i a j i while a i temp if i j a j a i j while i j a i temp return i void Quicksort int a int s int t int i if s t i divider a s t num Quicksort a s i 1 Quicksort a i 1 t int main int s 1 t i freopen quickSort in r stdin freopen quickSort out w stdout scanf d for i 1 i n i scanf d 34 t n Quicksort a s t printf d num return 0 14 堆排序 堆排序 100 分 分 heapSort cpp 题目描述 给定 n 个整数作从小到大堆排序 输出第二趟堆排序的结果 输入 输入文件 heapSort in 的第一行为一个自然数 n 10 n 30000 接着若干行共有 n 个整 数 每个整数之间用空格隔开 输出 输出文件 heapSort out 包括 n 个整数 是第二趟堆排序完成后的结果 每输出 10 个整 数换行一次 各整数之间用一个空格隔开 输入输出样例 1 heapSort inheapSort out 10 29 38 17 15 8 39 3 32 33 36 15 36 29 33 8 17 3 32 38 39 数据限制 10 n 30000 include stdio h const int N0 30005 int a N0 int n void heapone int a int s int t int i j int temp temp a s i s j 2 i while j t if j t if temp 1 i heapone a i n for i n i n 1 i temp a 1 a 1 a i a i temp heapone a 1 i 1 temp a 1 a 1 a i a i temp int main int i freopen heapSort in r stdin freopen heapSort out w stdout scanf d for i 1 i n i scanf d Heapsort a n for i 1 i n i printf d a i if i 10 0 printf n return 0 15 归并排序 归并排序 100 分 分 mergeSort cpp 题目描述 36 给定 n 个整数作从小到大归并排序 输出第 4 趟归并排序的结果 输入 输入文件 mergeS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论