Java基础学习笔记 -- 10(数组排序)

1. 双层for循环

    外层循环执行一次,内层循环会全部执行,总执行次数为"外层循环次数" * "内层循环次数"。

    案例31:

        wKioL1VdoMWjZuSJAAEt7Gpd_WI134.jpg

    输出结果:
        wKioL1VdoQKzDLy-AAF48il2uis352.jpg

    案例32:

        wKiom1Vdn7uig6JtAAGrFm1ngLo512.jpg

2. 数组排序

    1)冒泡排序

        比较相邻的元素,将小的放到前面,大的放后面,比较一轮,会获取一个最大值在最后位置。

    案例33:

        wKiom1VdoBGjLyHIAAIP4AedIEo725.jpg

    输出结果:

        wKiom1VdoEWDiAMkAAFbHqxya_8465.jpg

    2)冒泡排序--轻泡上浮

        将最小的数字往前排,比较一轮,获取一个最小的在前面。

    案例34:

        wKiom1VdoGzj_4bTAAIV-l1tA9E297.jpg

    输出结果:

        wKioL1Vdof3S1BW3AAFngsFqA1M016.jpg

   3)插入排序

        将数组中每个元素(从第二个元素开始的元素)与第一个元素比较,如果这个元素小于第一个元素,则交换这两个元素;再循环第1条规则,找出最小元素,放于第1个位置经过n-1轮比较完成排序。

    案例35:

        wKioL1VdolWiGv4fAAIUlA9chSY527.jpg

    输出结果:

        wKiom1VdoObgdbkOAAFifJ3tBL4218.jpg

    案例36:

        wKiom1VdoSbTuImuAAJhpX_GjrY012.jpg

    输出结果:

        wKioL1VdorbwNdeTAAF3bV-t8RA095.jpg

   

3. 二分查找法

    虽然JDK提供了二分查找的方法:Arrays.binarySearch( 数组,  元素值);但是很多时候(面试),需要我们自己写。

    二分查找要求数组是有序的,获取数组arr的中间位置mid,定义变量k为要查找的数字。

    若arr[mid] == k,查找成功;

    若arr[mid] > k,在前半段中继续进行二分查找;

    若arr[mid] < k,则在后半段中继续进行二分查找。

    案例37:

        wKioL1VdovDxN7opAAIXcXyBO6Y463.jpg

 

 

你可能感兴趣的:(排序,二分查找,for循环,冒泡)