以下贴出两种实现方式,结果一样,但有些许的差别:

第一种:

  1. <script type="text/javascript">
  2. var arr=[6,7,8,3,4,5,9];
  3. function quicksort(left,right){
  4. if(left>right){
  5. return ;
  6. }
  7. var temp=0;
  8. var i=right;
  9. var j=left;
  10. temp=arr[left];
  11. while(arr[i]>arr[left]){
  12. i--;
  13. }
  14. while(arr[j]<=arr[left]){
  15. j++;
  16. }
  17. if(i>j){
  18. temp=arr[i];
  19. arr[i]=arr[j];
  20. arr[j]=temp;
  21. quicksort(left,right);
  22. }
  23. else{
  24. arr[left]=arr[i];
  25. arr[i]=temp;
  26. quicksort(left,i-1);
  27. quicksort(i+1,right);
  28. }
  29. }
  30. quicksort(0,6);
  31. console.log(arr);
  32. </script>

第二种:

  1. <script type="text/javascript">
  2. var a=[6,7,8,3,4,5,9];
  3. function quicksort(left,right){
  4. var i,j,t,temp;
  5. if(left>right){
  6. return;
  7. }
  8. temp=a[left];
  9. i=left;
  10. j=right;
  11. while(i!=j){
  12. while(a[j]>=temp&&i<j){
  13. j--;
  14. }
  15. while(a[i]<=temp&&i<j){
  16. i++;
  17. }
  18. if(i<j){
  19. t=a[i];
  20. a[i]=a[j];
  21. a[j]=t;
  22. }
  23. }
  24. a[left]=a[i];
  25. a[i]=temp;
  26. quicksort(left,i-1);
  27. quicksort(i+1,right);
  28. return;
  29. }
  30. quicksort(0,6);
  31. console.log(a);
  32. </script>

JS实现快速排序算法的更多相关文章

  1. js快速排序算法解析

    数组的快速排序算法,和并归排序步骤基本类似. 都是先拆分,后合并.并归排序是:拆分容易,合并难. 快速排序是:拆分难,合并容易 要理解快速排序,首先要理解拆分逻辑 要素:找一个基准点,通过操作使得数列 ...

  2. js快速排序算法

    真正的快速排序算法一: function quickSort(array){ function sort(prev, numsize){ var nonius = prev; var j = nums ...

  3. 快速排序算法 java 实现

    快速排序算法 java 实现 快速排序算法Java实现 白话经典算法系列之六 快速排序 快速搞定 各种排序算法的分析及java实现 算法概念 快速排序是C.R.A.Hoare于1962年提出的一种划分 ...

  4. C# 集合扩展快速排序算法

    /// <summary> /// 对集合进行排序,如 /// List<Person> users=new List<Person>(){.......} /// ...

  5. PHP描述冒泡排序和快速排序算法

    使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组.使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组.写一个二维数组排序算法函数,能够具有通用 ...

  6. js实现快速排序(in-place)简述

    快速排序,又称划分交换排序.以分治法为策略实现的快速排序算法. 本文主要要谈的是利用javascript实现in-place思想的快速排序 分治法: 在计算机科学中,分治法是建基于多项分支递归的一种很 ...

  7. 快速排序算法(Java)

    快速排序算法的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另外一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序. class Parti ...

  8. 快速排序算法-C语言实现

    注:本篇内容为翻译,之所以选择这篇进行翻译原因是该文章含有动画,能够更加直观地展示快速排序.同时,可以仔细看一下代码,代码中把结构化的思想给予了更加充分地表现.按照功能进行模块划分的思想得到了彻底地贯 ...

  9. C#快速排序算法基础入门篇

    相信算法对于许多开发人员来说都是一大难点,之所以难,就像设计模式一样,许多人在阅读之后,没有很好地理解,也不愿意动手上机操作,只停留在理论的学习上面,随着时间推移就慢慢淡忘. 有些东西,你可以发明创造 ...

随机推荐

  1. Python36和Python27共存的方法

    Python26和Python37环境的配置 设置环境变量 我的电脑右键属性-高级系统属性-环境变量 选择系统变量中的Path,双击打开 加入你的Python安装路径 C:\Python27;C:\P ...

  2. BOM的节点方法和属性

    一.HTML DOM >>>>>>>>>>>>>>>>>>>>具体可以参考W3S ...

  3. sql将一张表的字段赋值给另一张表

    插入数据 1 insert into TbYTZ(UserID) select UserID from TbUser 更新数据则在TbUser和TbYTZ两个表要有一个关系... 如TbUser.a1 ...

  4. [javaSE] GUI(事件监听机制)

    外部动作——>事件源(组件)——>事件对象——>监听器 获取Frame对象,与上节一样 调用Frame对象的addWindowListener()方法,参数:WindowListen ...

  5. 一:XML知识整理

    一:xml 1. xml简介 a) xml, eXtensible Markup Language, 可扩展标记语言.是一种标记语言. b) xml 是一种非常灵活的语言, 没有固定的标签, 所有的标 ...

  6. 查看SQLServer数据库表占用大小

      查看数据库mdf 文件中 各个表数据占用大小.      create table #t(name varchar(255), rows bigint, reserved varchar(20), ...

  7. java util 中set,List 和Map的使用

    https://www.cnblogs.com/Lxiaojiang/p/6231724.html 转载

  8. PAT 1032. Sharing

    其实就是链表求交: #include <iostream> #include <cstdio> #include <cstdlib> #include <un ...

  9. MySQL:PyMySQL&ORM

    一.PyMySQL介绍 PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb. Django中也可以使用PyMySQL连接MySQ ...

  10. csharp:A Custom CheckedListBox with Datasource

    /// <summary> /// (eraghi) /// Custom CheckedListBox with binding facilities (Value property) ...