----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

今天学习了数组经典用法,进行SelectSort和BubbleSort,还有线性查找和BinarySearch(前提是这个数组是有序数组)。对于排序问题:SelectSort,我觉得最主要的是弄清楚外层循环和内层循环转多少圈,掌握好边界问题,再就是明白外层arr[i]每次进来,都要和内层arr[j]来比较,但是内层越每次会少一个元素

例如:for(int i=0;i

           {

              for(int j=i+1;j

               {arr[i]和内循环中每个数进行比较,然后做相应的换值}

           }

对于BubbleSort,也是掌握内循环的边界问题

for(int i=0;i

   {

      for(int j=0;j

       {arr[j]和arr[j+1]进行比较,然后做相应的换值}

 

   }

在做相应的换值时,我们经常会用到一个临时的中间变量temp;例如,把int a,int b的值交换,(int temp=a;a=b;b=temp)。

对于折半查找,这个数组一定要是有序的,然后我们具体指定一个值,还有查找范围的开始点(start),结束点(end),然后中间点m=(start+end)>>1;进行比较中间值和指定的值,如果中间值大于指定值,那么应该让end的值=m-1;否侧让start的值=m+1,中间点每次需要重新做相应的操作m=(start+end)>>1依次找我们需要的值,如果没有的话,就需要给我们返回一个-1。

    

紧接着就学习了二维数组:对于二维数组,需要在理解掌握一维数组的基础上,才可以掌握数组中的数组。比如我们熟悉的学生成绩,我们可以定义几个学生的几个科目的成绩,所有学生的所有成绩就是一个二维数组,每个学生的成绩就是一个一维数组,每个科目的成绩就是这个二维数组中一维数组的元素。

下边我上传下我自己打的这几个练习的代码。

----------- android培训java培训、java学习型技术博客、期待与您交流! -----------