完成任务
1.java的异常练习(毕向东第十天结束)
2.三种排序的比较
收获
1.父类只写了带参的构造函数,子类中要写明super(参数),或者父类中要有无参的构造函数
2.throw 单独出现时下面的语句写了也没用
3.多个catch存在时,父类要在最下面
4.
桶排
优点:速度快
缺点:浪费内存,只能处理整数
思想:标记的思想
# include <stdio.h>
int main ()
{
int i,j,k,book[1001]={0};
int n ;
scanf("%d",&n);
for (i = 0 ; i < n ; i ++)
{
scanf("%d",&k);
book[k]++;
}
for (i = 1000 ; i >=0 ; i--)
for (j = 1 ; j<=book[i] ; j ++)
printf("%d ",i);
return 0;
}
冒泡
优点:可以对小数进行排序
缺点:耗时
思想:相邻交换
# include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
int i,j,k;
int a[n];
for (i = 0 ; i < n ; i ++)
scanf("%d",&a[i]);
for (i = 0 ; i < n-1 ; i ++)
for (j = 0 ; j < n-1 ; j++)
{
if(a[j] < a[j+1])
{
k = a[j];
a[j] = a[j+1];
a[j+1] = k;
}
}
for ( i = 0 ; i < n ; i ++)
printf("%d ",a[i]);
return 0;
}
快排
优点:耗时少,消耗内存少
思想:二分
通过找到基准数,然后将基准数左边设置为全部为小于基准数,右边设置为全部为大于基准数,依次对基准数左右进行操作,最终得到结果
# include <stdio.h>
int a[101],n;
void qs (int left , int right)
{
if (left > right)
return ;
int i,j,k,t;
t= a[left];
i = left;
j= right;
while(i != j)
{
while(a[j]>= t && i<j)
j--;
while(a[i]<= t && i<j)
i++;
if (i < j )
{
k = a[i];
a[i] = a[j];
a[j] = k;
}
}
a[left] = a[i];
a[i] = t;
qs(left , i -1);
qs(i+1 , right);
}
int main()
{
int n;
scanf("%d",&n);
int i , j , k;
for (i = 0 ; i < n ; i ++)
scanf("%d",&a[i]);
qs(0,n-1);
for (i = 0 ; i < n ; i ++)
printf("%d ",a[i]);
return 0;
}
心得
努力不是你的资本,产出才是,很多时候你只是看起来很努力,然而产出却很少,要想要产出可视化,最后的总结便是直观的体现
两个小时可以做完的事情,何必拖一天,显得自己很努力?获取你一天的产出都没有两个小时多。