1.冒泡排序 1.比较相邻的两个元素,如果前一个比后一个大,则交换位置。 2.第一轮的时候最后一个元素应该是最大的一个。 3.按照步骤一的方法进行相邻两个元素的比较,这个时候由于最后一个元素已经是最大的了,所以最后一个元素不用比较。 2.快速排序: 解析:快速排序是对冒泡排序的一种改进,第一趟排序时将数据分成两部分,一部分比另一部分的所有数据都要小。然后递归调用,在两边都实行快速排序。 (类似二叉树,直到递归完毕) (一定要注意颜色变化,相同颜色代表一个数组,) 3.插入排序: 解析: (1) 从第一个元素开始,该元素可以认为已经被排序。 (2) 取出下一个元素,在已经排序的元素序列中从后向前扫描 (3) 如果该元素(已排序)大于新元素,将该元素移到下一位置 (4) 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置 (5)将新元素插入到下一位置中 (6) 重复步骤2 举个例子: 手写:(取出下一个元素,在已经排序的元素序列中从后向前扫描,蓝色) 再举个例子:(红色是要插入的元素,从后向前扫描找合适的位置,绿色数字是比红色数字大) 代码实现:
|