js冒泡排序和选择排序,js冒泡排序和快速排序

  js冒泡排序和选择排序,js冒泡排序和快速排序

  在本文中,我们将学习JavaScript中冒泡排序和选择性排序的知识。冒泡法每次比较都需要立即交换,而选择性排序就是找出最小的未排序数,与所在位置的元素交换。排序交换次数较少,一定程度上提高了运行效率。希望对大家有帮助。

  JavaScript冒泡排序与选择排序

  冒泡排序

  原则:

  比较两个相邻的元素,将具有较大值的元素向右交换,直到最右边。注意核心是相邻的。

  想法:

  依次比较两个相邻的数字,将较小的数字放在前面,较大的数字放在后面。第一轮过后,数组中最大的数字将在后面。

  第二轮:然后该数组从第一个数字开始依次比较其余数字中的相邻数字,最大的数字在后面。

  重复这些步骤,直到排序完成。

  注意:到倒数第二轮结束,最后一轮还剩一个数,一定是最小的,不用排序。也就是说,只有排序数组的长度减少了一轮(arr.length-1)。

  算法可视化:

  代码如下:

  脚本

  函数ismaopao(arr) {

  //控制比较回合数

  for(var I=0;I arr . length-1;i ) {

  //冒泡排序,两两交换,从头比较(大数下沉)

  for(var j=0;j排列长度-1-I;j ) {

  //arr.length-1-i,因为前面的判断已经找到了最大值,所以不需要和找到的大数进行比较。

  if (arr[j] arr[j 1]) {

  var a;

  a=arr[j];

  arr[j]=arr[j 1];

  arr[j 1]=a;

  }

  }

  }

  返回arr

  }

  console.log(ismaopao([6,3,4,5,2,1])

  /script结果如下:

  选择排序

  想法:

  假设数组第一个位置的数字是最小的,然后将它与下面的每个数字进行比较。只要找到较小的数,就会交换值对应的下标。注意是下标。第一轮搜索结束后,可以锁定到最小位置(也就是找到下标),然后交换值。

  第二轮假设第二个位置的数字最小。此时,数组的第一个值(因为它已经是第一轮中的最小值)被忽略,然后用后面的最小值交换下标,锁定后再交换值。

  重复这些步骤,直到排序完成。

  注意:到倒数第二轮结束时,最后一轮还剩一个数,一定比前面的数大,所以不用排序。也就是说,只有排序数组的长度减少了一轮(arr.length-1)。

  算法可视化:

  代码如下:

  没有包裹。可以自己包装。

  脚本

  //选择排序,小于冒泡排序。

  var arr=[5,3,4,2,1]

  var min=0;//定义一个最小值作为数组的下标

  for(var I=0;I arr . length-1;i ) {

  min=I;

  for(var j=I 1;j排列长度;j ) {

  if (arr[min] arr[j]) {

  min=j;//交换下标,即交换位置。

  }

  }

  var a=0;

  //现在min的值是数组最小值对应的下标,

  //然后和下标为I的对应数组中的值交换,I随每轮变化。

  a=arr[min];

  arr[min]=arr[I];

  arr[I]=a;

  }

  console . log(arr);

  /script结果如下:

  相关视频教程推荐:jQuery视频教程以上是一分钟透彻了解JavaScript冒泡排序和选择性排序的详细内容。更多请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: