JavaScript 冒泡排序与快速排序实现详解

作者:木棉时间:2026-10-30 14:32:01浏览:377

本文通过JavaScript代码实例,详细解析了冒泡排序与快速排序两种基础算法的实现逻辑。内容涵盖排序原理、核心代码结构及递归处理机制,旨在帮助开发者理解并掌握数组排序的具体编程技巧。

冒泡排序实现

首先介绍冒泡排序算法。该算法通过重复遍历要排序的列表,比较相邻元素并在顺序错误时交换它们,直到列表完全有序。

冒泡排序代码示例


var arr1=[3,9,2,7,0,8,4];
for(var i=0;i<arr1.length;i++){
  for(var j=i+1;j<arr1.length;j++){
    var temp=0;
    if(arr1[i]>arr1[j]){
      temp=arr1[i];
      arr1[i]=arr1[j];
      arr1[j]=temp;
    }
  }
}
alert(arr1);

快速排序实现

接着讲解快速排序算法。这是一种高效的排序方法,采用分治策略,通过选择一个基准元素将数组分为两部分,然后递归地对子数组进行排序。

快速排序代码示例


var a=[3,5,0,9,2,7,5];
function quickSort(arr){
  var len=a.length;
  if(len<=1) return arr;

  function sort(low,height){
    var pivot=a[low];
    var i=low,j=height,t;
    if(i>j) return false;
    while(i!=j){
      while(a[j]>=pivot&&i<j){
        j--;
      }
      while(a[i]<=pivot&&i<j){
        i++;
      }
      if(i<j){//把比pivot大的换到右边,小的换到左边
        t=a[i];
        a[i]=a[j];
        a[j]=t;
      }
    }
    //此时i和j指向同一个数字,把这个数字和pivot交换
    a[low]=a[i];
    a[i]=pivot;
    //递归:把pivot左边的数进行一次排序,右边的数进行一次排序
    sort(low,i-1);
    sort(i+1,height);
  }
  //调用这个排序的函数
  sort(0,len-1);
  return a;
}
alert(quickSort(a));

总结

以上即为使用JavaScript实现上述两种基础算法的完整示例。希望这些代码示例能对读者的学习与实践提供有益参考,欢迎持续关注与支持。

作者最新文章