博客园第二次作业

1.  感觉自己目前在学习中存在的薄弱点为在处理一些时间复杂度比较高的题目时,想不到有效的优化代码的方法,例如大数相加等。还有对一些算法的不熟悉,例如选择排序等;例如pta的练习7的数列求和,我由于时间超时不能通过,也想不到其他的方法。而对于一些算法,只有大概的印象,并不能很清楚的记住主要的结构,在实际应用上面就会遇到麻烦,耽误时间。例如在新手赛的时候,因为对选择排序的不熟悉,不能快速地写出函数,也没能快速的找出错误,于是耽误了大量的时间。

 

2.  pta练习9  7-2

(1.)题目大意:在主函数中输入n个整数到数组中,调用函数(要求被调参数为⑴数组名 ⑵数组元素的个数)完成将数组中的最小值与第0个元素对调,将数组中的最大值与最后一个元素对调,主函数中输出调换后的数组。要求函数用指针变量作形参。

输入格式:

第一行是一个整数n,表示元素个数; 第二行是n个整数,表示数组的n个元素。

输出格式:

输出调换元素后的数组,以空格分隔。

(2)解题思路:遍历数组中的元素,找出最大值和最小值下标,进行调换。

(3)代码思路:首先向一个数组中输入n个整数,随后将数组地址和大小传入sort函数,由sort函数进行寻找最大最小值下标并且根据下标的不同情况调换位置的任务,完成后主函数再将调换后的数组进行输出。

(4)核心技术总结:寻找下标,分情况进行调换。

(5)解题过程中存在的问题,以及如何得到解决的:刚开始时仅仅是简单地找出下标并进行调换,没有考虑到最大值为数组第一种元素等情况,于是产生错误,后面分别对三种情况进行了不同处理——1.最大值不是数组的第一个元素:先调换最小值,再调换最大值;2.最大值是数组的第一个元素:定义一个中间变量,将最大值最小值放至指定位置,将原本数组末尾的元素放至数组的最小值下标处;3.最大值为第一个元素,最小值为最后一个元素:将最大最小值调换。

posted @ 2018-12-05 14:33  显示名称已被使用.!  阅读(228)  评论(0编辑  收藏  举报