
学习经验
SydneyCarton_
这个作者很懒,什么都没留下…
展开
-
归并排序用一个函数
归并排序再也不用两个函数了void msort(int a[], int tmp[], int start, int end) { int p; int mid = (start + end) >> 1; if (start < end) { msort(start, mid); msort(mid + 1, end); } else return; //递归出口 //两边排序完成 归并 int i = start, j = mid + 1, k =原创 2021-01-13 21:51:12 · 292 阅读 · 0 评论 -
输出所有组合
一种非递归的组合问题的解决方法默认是从1-n这n个数中取m个,有多少种组合其他诸如字符、字符串等的组合问题均可建立映射表解决总体思路是对所有组合进行分类,进位前后分为两类1234 1235 1236为一类1245 1246 为一类1256 为一类1345 1346为一类1356为一类……每一次大的while循环解决“一类组合的输出”和“下一类的预备”工作#include <stdio.h> #include <stdlib.h> int combine原创 2020-12-05 16:34:20 · 755 阅读 · 0 评论 -
数组-PTA-类似二分法解决有序数组的插入
高等教育出版社教材-浙大版《数据结构(第2版)》题目集。有序数组的插入本题要求将任一给定元素插入从大到小排好序的数组中合适的位置,以保持结果依然有序。函数接口定义:bool Insert( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Position Last; /*原创 2020-11-14 14:35:46 · 558 阅读 · 0 评论 -
scanf-PAT-读入空格间隔的多个字符串
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:输出占一行,输出倒序后的句子。输入样例:Hello World Here I Come输出样例:Come I Here World Hello我的答案#include<stdio.h>#include<s原创 2020-09-24 16:32:29 · 552 阅读 · 0 评论 -
链表-PAT-&&||的执行顺序避免访问NULL
设计函数求一元多项式的导数。输入格式:以指数递降方式输入多项式非零项系数和指数。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。“零多项式”的指数和系数都是 0,但是表示为 0 0。输入样例:3 4 -5 2 6 1 -2 0输出样例:12 3 -10 1 6 0我的答案#include<stdio.h>#include<stdlib.h>typedef struct term{ int coe; int exp; struct ter原创 2020-09-24 16:27:24 · 198 阅读 · 0 评论 -
小内存大数据排序-[多路归并法][文件一些的操作]
总结一下几个文件操作注意点。新打开文件时注意括号注意 赋值= 的优先级低于 比较==一定要(fp = fopen("in.txt", "r")) == NULL注意一些惯用操作FILE* fp; if ((fp = fopen("in.txt", "r")) == NULL) printf("Open Fail."); else { for(i = 0; i <...原创 2020-04-28 18:17:13 · 954 阅读 · 0 评论 -
归并排序-拓展至三路归并
#include <stdio.h>#include <stdlib.h>#define MAX 999999 //一个比所传入最大值要大的数即可void Sort(int* a, int* temp, int low, int high);void GuiBing(int* a, int* temp, int low, int high);int main(vo...原创 2020-04-26 14:17:00 · 1716 阅读 · 0 评论 -
随机数-每次运行程序均生成不同的随机数[系统时间作为生成种子]
很多算法问题在它们的解决方案中都和排序有关。例如,可以根据随机键值“排序”,以打乱一个数组。一种方法就是使用选择排序算法,然后把找到最小值的位置改成选择一个随机位置。该结果是一个打乱算法,其中各种可能的输出是等概率的。编写一个程序,通过随机排序输出1-52之间的整数。#include<stdio.h>#include<stdlib.h>#include <ti...原创 2020-04-17 10:09:22 · 1043 阅读 · 0 评论 -
链表-PTA-奇数值结点链表[三指针法将链表分为两链]
本题对头结点的分类讨论(在读入与操作函数中)可能可以运用“空头结点”进行简化,但是主要想强调运用“三指针”可将链表分为两链。本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中奇数值的结点重新组成一个新的链表。链表结点定义如下:struct ListNode { int data; ListNode *next;};函数接口定义:struct ListNode ...原创 2020-03-21 16:59:49 · 455 阅读 · 0 评论 -
链表-PTA-逆序输出[逆序建立链表的简单写法]
定义单向链表:输入若干个正整数(输入-1为结束标志),要求按输入数据的逆序并输出。输入样例:1 2 3 4 5 6 7 -1输出样例:7 6 5 4 3 2 1我的答案#include <stdio.h>#include<stdlib.h>typedef struct List{ int num; struct List* next;} List;...原创 2020-03-21 16:48:09 · 1308 阅读 · 0 评论 -
链表-PTA-猴子选大王
一群猴子要选新猴王。新猴王的选择方法是:让n只候选猴子围成一圈,从某位置起顺序编号为1~n号。每只猴子预先设定一个数(或称定数),用最后一只猴子的定数d,从第一只猴子开始报数,报到d的猴子即退出圈子;当某只猴子退出时,就用它的定数决定它后面的第几只猴子将在下次退出。如此不断循环,最后剩下的一只猴子就选为猴王。请输出猴子退出圈子的次序以及当选的猴王编号。函数接口定义:int KingOfMonk...原创 2020-03-21 16:42:39 · 814 阅读 · 0 评论 -
链表-PTA-单链表结点删除[头结点的使用]
链表-头结点的使用PTA-单链表结点删除本题要求实现两个函数,分别将读入的数据存储为单链表、将链表中所有存储了某给定值的结点删除。链表结点定义如下:函数接口定义:struct ListNode *readlist();struct ListNode *deletem( struct ListNode *L, int m );函数readlist从标准输入读入一系列正整数,按照读入顺...原创 2020-03-21 00:00:47 · 800 阅读 · 0 评论