标签:ar sp java bs 代码 ef amp as 算法
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); }
标签:ar sp java bs 代码 ef amp as 算法
原文地址:http://my.oschina.net/zhanglikun/blog/348872