由于今天书本到了,通过今天的读书也算是有一点收获,在这里总结一下自己的心得。
(1)首先是,提供了一种新的思路,在之前做cf的题目的时候,有的时候会遇到题目给出的样例都可以过,但代码wa的情况,找不到更多的样例来测试自己的代码。这里给出了一些的思路,用暴力的方法写出来,通过这个暴力的方法来获得更多的样例,这也是一种解决的方法。感觉这个方法适用于暴力解决会超时,而且自己是真的想不明白的时候在使用。
(2)然后是对排序算法有了新的了解,之前我们了解的冒泡排序,这个复杂度是 n方 ,一般不用。经常用的是sort函数进行排序,通过了解时间复杂度是 n乘以以2为底数n的对数级别的。然后刚刚了解了哈希算法的排序,是用空间来换取时间的算法,具体操作是吧每个数都加上同一个相同大的数字,并把它当做下标,数组的值赋值为一,再逐个检查是一的话就输出。
#include <iostream>
#include <cstring>
using namespace std;
int a[100005];
int main()
{
int n,m;
while(cin>>n>>m)
{
int t;
memset(a,0,sizeof(a));
for(int i=1;i<=n;i++)
{
cin>>t;
a[t+50000]=1;
}
for(int i=100005;m>0;i--)
{
if(a[i])
{cout<<i-50000<<endl;
m--;}
}
}
return 0;
}
这次算是收获了新的思路吧,了解了哈希算法排序,算是多了一种考虑问题的方法。 这次先写这里,今天晚上应该还会再写一篇,希望自己的暑假也可以学一些东西吧。
|