js实现快速排序
2018-10-03 22:53
465 查看
至于原理啥的网上太多了,就不再赘述
直接上代码和截图吧
<script type="text/javascript"> function quick_sort(arr,low,high){ var i = low; //哨兵i var j = high; //哨兵j var key = arr[low]; //标准值 if(low >= high){ //如果数组只有一个元素 return; } while(i<j){ //i==j时意味着找到k位置了 while(arr[j] > key && i < j){ //从右边向左找第一个比key小的数,找到或者两个哨兵相碰,跳出循环 j--; } while(arr[i] <= key && i < j){ i++; //从左边向右找第一个比key大的数,找到或者两个哨兵相碰,跳出循环,这里的=号保证在本轮循环结束前,key的位置不变,否则的话跳出循环,交换i和from的位置的时候,from位置的上元素有可能不是key } /** 代码执行到这里,1、两个哨兵到找到了目标值。2、j哨兵找到了目标值。3、两个哨兵都没找到(key是当前数组最小值) **/ if(i < j){ //如果i==j跳出外层while交换两个元素的位置 var temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } arr[low] = arr[i]; arr[i] = key; quick_sort(arr,low,i-1); //递归调用左边 quick_sort(arr,i+1,high); } var arr = [20,-1,5,-9,10,7,100,-100,60]; console.log(arr); quick_sort(arr,0,arr.length-1); console.log(arr);
阅读更多
相关文章推荐
- js实现常见的三种排序方法(冒泡排序、快速排序、归并排序)
- JS实现快速排序
- JS实现随机化快速排序的实例代码
- js实现快速排序
- JS实现快速排序
- JS实现快速排序
- JS实现随机化快速排序的实例代码
- js实现快速排序
- 用JS实现冒泡排序、插入排序、选择排序、快速排序
- JS实现快速排序
- 快速排序的js递归实现
- 排序算法复习(Java实现): 插入,冒泡,选择,Shell,快速排序
- js实现表格的添加 删除 搜索和排序
- 快速排序与堆排序的Java实现(泛型)
- JS实现的随机排序功能算法示例
- 快速排序,“两头交换”法 ,实现
- js实现表格排序
- 快速排序,C语言实现
- 利用随机化快速排序求带权中位数C++实现
- 快速排序的递归实现。 分治法。