- 博客(29)
- 收藏
- 关注
原创 快速排序
带阈值的快速排序(因为在数据量比较小的时候,快速排序的递归还不如简单的插入排序来得快,所以设定一个阈值,在待排数据量比较小的时候直接用插入排序)#include <iostream>using namespace std;#define cutoff 100void Quick_Sort(int *a, int n);void quickSort(int *a, int ...
2019-04-15 09:01:35 307
原创 判断一个链表是否有环
1、判断链表是否有环2、得到环的长度3、得到环的入口节点设置两个指针,让一个前进速度快,一个前进速度慢,当两者相遇就说明链表存在环环的长度由第一次两指针相遇到第二次两指针相遇所循环的次数得出环的入口节点怎么得出需要证明:假设速度快的节点fast每次走两步用,慢的节点slow每次走一步;它们俩第一次相遇时fast走了2s步,slow走了s步,入口节点到头节点的距离是a,环长r,a+r为L...
2019-04-10 15:27:30 146
原创 数组循环右移(不创建额外数组,程序中数据移动次数尽可能少)
数组循环右移(不创建额外数组,程序中数据移动次数尽可能少)/* PTA上的一道元素循环右移问题,要求不建额外的数组,并且程序中数据移动次数尽可能少 百度到的一些别人写的程序都没注意尽可能少的数据移动次数,这里发表自己的看法,另外 本题强调数组内元素的移动,如果只是要输出移动后的结果,则数组元素不必移动 */#include <iostream>using namespac...
2019-03-19 09:31:00 991
原创 排序算法总结
1、冒泡排序void bubble_sort(int* num, int num_count){ // 冒泡排序,最好情况O(N),最坏情况O(N*N) for (int i = num_count - 1; i >= 0; i--) { bool ok_flag = true; for (int j = 0; j < i; j++) { if (num[j] > num[j + 1])
2021-02-19 14:08:35 117
原创 qt里一些spinbox与滑动条之类在数据变化时刷新的一些小细节
一般输入框之类的有valueChanged,editingFinished之类的信号,不过和滑动条之类进行数据同步的话,感觉还是valueChanged好用一点。在设置键盘跟踪setKeyboardTracking(False)之后,在spinbox里输入值按回车或者让其失焦等等类似情况之后,才会触发valueChanged,不会出现一边输入一边触发valueChanged的情况。而且spi...
2019-11-24 21:16:41 2854
原创 把n转化成m进制数(我用了容器,用数组和堆栈也行)
#include <iostream>#include <vector>using namespace std;int main(int argc, char *argv[]){ int n, m; cin >> n >> m; if (n == 0) { cout << 0; return 0; } v...
2019-04-10 15:50:05 223
原创 关于char*与char[]以及const char*和char* const
如果定义一个字符数组char a[10];a是这个数组的首地址,用*a可以访问 该数组的首个元素;但此时a的类型和用char *const a定义出的指针a类似, 是不可修改的指针值,也不能直接用*(++a)来访问该数组的第二个元素, 但如果把a作为参数传给一个函数,只是复制了一个a的值,就能用*(++a)来访问该 数组的第二个元素。同理,若在主函数中定...
2019-04-09 17:06:07 361
原创 完美数列
给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数 N 和 p,其中 N(≤105)是输入的正整数的个数,p(≤109)是给定的参数。第二行给出 N 个正整数,每个数不超过 109。输出格式:在一行...
2019-04-03 17:57:23 169
原创 1024 科学计数法
科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [±][1-9].[0-9]+E[±][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指数部分的正负号即使对正数也必定明确给出。现以科学计数法的格式给出实数 A,请编写程序按普通数字表示法输出 A,并保证所有有效位都被保留。输入格式:每个输入包含 1 个测试用例,即一个以科学计数法表示...
2019-04-03 10:06:23 205
原创 1023 组个最小数 (20 分)
给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式:输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、……数字 9 的个数。整数间用一个空格分隔。...
2019-04-02 16:29:02 111
原创 关于int类型的大小
int类型的大小就是一个计算机的字长,而计算机的字长是cpu一次能处理的二进制数的位数,也就是看cpu里面寄存器的位数。 在一个32位的计算机里,int就是4个字节;在64位的计算机里,int就是8个字节。 在程序里可以用 sizeof(int) 来查看int的大小。 但是我在自己的64位机器上用 Visual Studio 的时候调成x64的调试环境得到的结果int还是4位,可能和创建的...
2019-04-01 20:24:16 25027 3
原创 实现一个函数,将给定的单链表逆转。
List Reverse(List L){ List head, tail, mid; tail = NULL; mid = L; while (mid != NULL) { head = mid->Next; mid->Next = tail; tail = mid; mid = head; } return tail;}
2019-03-24 19:07:12 3634
原创 两个一元多项式的乘积与和
#include <iostream>using namespace std;typedef struct node { int x; int y; node *next;}dx;dx *readPoly();dx *mult(dx *p1, dx *p2);void printAdd(dx *p1, dx *p2);int main(int argc, ch...
2019-03-24 17:57:05 748
原创 最大子列和
#include <iostream>using namespace std;int main(int argc, char *argv[]){ int K; cin >> K; int tmp; int sum = 0, max = 0; for (int i = 0; i < K; i++) { cin >> tmp; ...
2019-03-24 14:55:11 117
原创 输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。
输入样例:3zhang 19850403 13912345678wang 19821020 +86-0571-88018448qian 19840619 13609876543输出样例:wang 19821020 +86-0571-88018448qian 19840619 13609876543zhang 19850403 13912345678#include <ios...
2019-03-23 21:10:10 33488 4
原创 输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负
输入样例:+--P-xf4+-1!#输出样例:-3905#include <iostream>using namespace std;int main(int argc, char *argv[]){ char s[81]; cin.getline(s, 80); int i = 0; int pt = 0; for (i; i < (...
2019-03-23 17:44:12 46342 3
原创 求一个给定的m×n矩阵各行元素之和。输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间 以空格分隔。
输入样例:3 26 31 -83 12输出样例:9-715#include <iostream>using namespace std;int main(int argc, char *argv[]){ int m, n; cin >> m >> n; int *a =new int[m]; for (int i...
2019-03-23 15:45:08 37689
原创 判断上三角矩阵。输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。
输入样例:231 2 30 4 50 0 621 0-8 2输出样例:YESNO#include <iostream>using namespace std;int main(int argc, char *argv[]){ int t; cin >> t; int *n = new int[t]; int ***a =...
2019-03-23 15:30:20 8595
原创 给定一批整数,分析每个整数的每一位数字,求出现次数最多数字(输出格式:“M: n1 n2 ...”行末输出不能有空格且“:”后没空格)
#include <iostream>using namespace std;int main(int argc, char *argv[]){ int n; cin >> n; int *a = new int[n]; for (int i = 0; i < n; i++) { cin >> a[i]; } int b[10...
2019-03-23 10:26:09 11245 1
原创 将给定的n个整数从大到小排序后输出。
#include <iostream>using namespace std;int main(int argc, char *argv[]){ int n; cin >> n; int *a = new int[n]; for (int i = 0; i < n; i++) { cin >> a[i]; } int tmp...
2019-03-22 22:15:26 14896
原创 字符串逆序
#include <iostream>using namespace std;int main(int argc, char *argv[]){ char s[81]; cin.getline(s, 80); for (int i = strlen(s); i >= 0; i--) { cout << s[i]; } return 0...
2019-03-22 22:00:42 371
原创 从给定字符串中查找某指定的字符(找下标最大的,从左或从右开始找都行,这里只写了从左找的)。
#include <iostream>#include <string>using namespace std;int main(int argc, char *argv[]){ char c; char s[81]; cin >> c; cin.ignore(); cin.getline(s, 80); int index; fo...
2019-03-22 21:55:47 3367
原创 在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期,计算某年某月某日是该年中的第几天。
#include <iostream>using namespace std;int main(int argc, char *argv[]){ char a[11]; cin.getline(a, 11); int sum = 10 * (a[8] - '0') + a[9] - '0'; int b[13] = { 0,31,28,31,30,31,30,31...
2019-03-22 21:44:06 17943
原创 给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。
#include <iostream>using namespace std;int main(int argc, char *argv[]){ int n; cin >> n; int **a = new int*[n]; for (int i = 0; i < n; i++) { a[i] = new int[n]; } for (...
2019-03-22 20:49:23 26081
原创 给定两个整型数组,找出不是两者共有的元素(同一数字不重复输出,输出的数字从小到大,如果要求输出的元素按输入顺序排列,好像只能分别取每个数组的元素遍历,没仔细想过有没有其他方法)
#include <iostream>using namespace std;int* setArray(int n); //创建数组void min_Heap(int *a,int n); //调成最小堆void swap(int *a, int *b); //交换两数int pop(int *a, int n); //删除第一个元素并返回第一个元素且重新调整成...
2019-03-22 16:17:19 4035
原创 数组逆序
#include <iostream>using namespace std;int main(int argc, char *argv[]){ int n; cin >> n; int *a = new int[n]; for (int i = 0; i < n; i++) { cin >> a[i]; } for...
2019-03-22 09:48:55 275
原创 找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)
#include <iostream>using namespace std;int main(int argc, char *argv[]){ int n; cin >> n; int max; cin >> max; int pt = 0; for (int i = 1; i < n; i++) { int tmp;...
2019-03-22 09:34:01 6058
原创 统计一行中单词的个数
#include <iostream>using namespace std;int main(int argc, char *argv[]){ char a[100] ; cin.getline(a, 100); int i = 0; int cnt = 0; while (a[i] == ' ') i++; while (a[i] != '\0') {...
2019-03-21 21:56:16 238
原创 简单计算器(四则运算同优先级,从左往又算)
#include <iostream>using namespace std;int main(int argc, char *argv[]){ int sum = 0,tmp; cin >> sum; char s ; cin >> s; while (s != '=') { cin >> tmp; switch ...
2019-03-21 21:11:11 2413
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人