递归算法举例 快速排序
16 递 归 算 法 举 例 ——快速排序
快速排序的思路: 1、将待排序的数据放入数组a中,下标从l到r; 2、取a[门放变量k中,通过由右、左两边对k的大小 的比较,为k选择应该排定的位置。这时要将比k 大的数放右边,比k小的数放左边。当k到达最终 位置后,由k划分了左右两个集合。然后再用同样 的思路处理左集合与右集合。 3、令sort(l,r)为将数组元素从下标为到下标为r的 1+1个元素从小到大排序
17 快速排序的思路: 1、将待排序的数据放入数组a中,下标从l到r; 2、取a[l]放变量k中,通过由右、左两边对k的大小 的比较,为k选择应该排定的位置。这时要将比k 大的数放右边,比k小的数放左边。当k到达最终 位置后,由k划分了左右两个集合。然后再用同样 的思路处理左集合与右集合。 3、令sort(l,r)为将数组元素从下标为l到下标为r的 r-l+1个元素从小到大排序
我们画出与或图来阐述快速排序的思路: sort(,r) 教据在a[1],…,a[r]中 <r B 什么也不做 D(● 分区处理 E sort(, m-1) sort(m+l, r)
18 我们画出与或图来阐述快速排序的思路: l>=r A sort(l,r) 数据在a[l],...,a[r]中 B 什么也不做 C l<r D 分区处理 F sort(m+1,r) E sort(l,m-1)