今天做到一个笔试题:
快速找出一个数组中最大数和第二大的数。
既然这是一道笔试题,肯定要多一点思路。
我一开始拿到这个题目是这么想的:用冒泡或者选择法将一个数组进行从小到大排序,然后输出最后两个数。
显然这并不是最佳的方法,而且有点投机取巧。
我的又想了一会,定义两个两个中间变量,分别将数组的第一个数和第二个数赋值给两个中间变量,然后这两个数进行比较,交换。
再用for循环依次找出最大值,如果找到比目前最大的还大的数就进行赋值,将先前最大的数赋值给第二大的数,依次循环。如下图程序所示: