在上面快速排序code中,有几个比较重要的代码
1.l+r>>1 就是位运算向右移动一位 就是相当于除以2 这样写的优点是比直接除以2更快
还有就是这个取基准元素,在数据加强后,选取第一个当做基准,可能会导致the time limited,所以我们通常取中间的数当做基准元素。
2.递归的边界分割为j 可以自己造几个数据来模拟一下 基准一般会出现在中间或者出现在中间偏左的位置,j一般会跑到中间偏左的位置,所以可以用 j分割左右两个子序列,用来处理左右两端的特殊情况。
在上面快速排序code中,有几个比较重要的代码
1.l+r>>1 就是位运算向右移动一位 就是相当于除以2 这样写的优点是比直接除以2更快
还有就是这个取基准元素,在数据加强后,选取第一个当做基准,可能会导致the time limited,所以我们通常取中间的数当做基准元素。
2.递归的边界分割为j 可以自己造几个数据来模拟一下 基准一般会出现在中间或者出现在中间偏左的位置,j一般会跑到中间偏左的位置,所以可以用 j分割左右两个子序列,用来处理左右两端的特殊情况。