选择排序:选择排序将数组分已排序和待排序(初始化为空)两组。

如果静态初始化一个数组,排序的过程如下:

int[] arr={19,2,23,21,18};

第一次从[0-4]中找最小的数, 在19 2 23 21 18这个数组中找到最小的数放到最左边,得到的结果是:2 19 23 21 18;

第二次从[1-4]中找最小的数,在2 19 23 21 18 这个数组中找到最小的数放到左边第二个位置,得到的结果是:2 18 23 21 19;

第三次 从[2-4]中找到最小的数,2 18 23 21 19这个数组中找到最小的数放到左边的第三个位置,得到的结果是:2 18 19 23 21;

第四次从[3-4]中找最小的数,2 18 19 23 21 这个数组中找到最小的数放到左边第四个位置,得到的结果是:2 18 19 21 23。

顺序查找和折半查找有什么不同(选择排序和折半查找法详解)(1)

顺序查找和折半查找有什么不同(选择排序和折半查找法详解)(2)

折半查找法:例如我心中的默念一个1-1000的数,让同学猜,第一次同学猜200,猜小了,第二次猜300猜大了,第三次猜250,猜小了,第四次猜280,猜大了,第五次猜265,猜小了,第七次猜273猜大了,八次猜269猜小了,第九次猜271猜大了,第十次猜270,猜对了。

规则:

① 是一个有序的数组

②要找一个中间数,找索引

③根据数的提示继续往左边还是右边找数据

顺序查找和折半查找有什么不同(选择排序和折半查找法详解)(3)

,