首页 > 代码库 > 排序算法-快速排序
排序算法-快速排序
Lua快速排序示例代码:
Java快速排序示例代码:
private void sort(int [] arr ,int left ,int right) { if(left >= right) return ; int i = left ,j = right ; int datum = arr[i] ; while(i < j) { /* 从右向左,找到一个小于基准值的元素索引 */ while(i < j && arr[j] >= datum) { j -- ; } /* 从左向右,找到一个大于基准值的元素索引 */ while(i < j && arr[i] < datum) { i ++ ; } /* * 此时i停留在左起第一个大于基准值的元素索引上,j停留在右起第一个小于基准值的元素索引上 * 将i/j元素交换,即:大于基准值的元素放右边,小于的放左边 */ int t = arr[i] ; arr[i] = arr[j] ; arr[j] = t ; } /* 一轮排序后,i == j */ /* 左递归,因为i有可能等于0,所以左边递归不能用i - 1 */ sort(arr, left, i); /* 右递归,i == j所以,j要从j + 1开始 */ sort(arr, j + 1 ,right); }
排序算法-快速排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。