首页 > 语言 > JavaScript > 正文

JS及PHP代码编写八大排序算法

2024-05-06 14:54:50
字体:
来源:转载
供稿:网友

从学习数据结构开始就接触各种算法基础,但是自从应付完考试之后就再也没有练习过,当在开发的时候也是什么时候使用什么时候去查一下,现在在学习JavaScript,趁这个时间再把各种基础算法整理一遍,分别以JS和PHP语法的方式编写代码。
1.冒泡排序
原理:临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束
时间复杂度:平均情况:O(n2)  最好情况:O(n) 最坏情况:O(n2)
空间复杂度:O(1)
稳定性:稳定     

//JavaScript语法 var array = [23,0,32,45,56,75,43,0,34]; for(var i = 0; i < array.length; i++) {  var isSort = true;  for(var j = 0; j < array.length - 1 - i; j++)  {  if(array[j] > array[j+1])  {   isSort = false;   var temp = array[j];   array[j] = array[j + 1];   array[j + 1] = temp;  }  }  if(isSort)  {  break;  } } console.log(array);
<?php $array = [23,0,32,45,56,75,43,0,34]; for($i = 0; $i < count($array); $i++) {  $isSort = true;  for($j = 0; $j < count($array) - 1; $j++)  {  if($array[$j] > $array[$j+1])  {   $isSort = false;   $temp = $array[$j];   $array[$j] = $array[$j + 1];   $array[$j + 1] = $temp;  }  }  if($isSort)  {  break;  } } var_dump($array);?>
  

2.简单选择排序
原理:通过n-i次关键字之间的比较,从n-i+1 个记录中选择关键字最小的记录,并和第i(1<=i<=n)个记录交换         简单选择排序的性能要略优于冒泡排序
时间复杂度:平均情况:O(n2)  最好情况:O(n) 最坏情况:O(n2)
空间复杂度:O(1)
稳定性:不稳定 

//JavaScript  var array = [23,0,32,45,56,75,43,0,34];  for(var i = 0; i < array.length - 1; i++)  {   var pos = i;   for(var j = i + 1; j < array.length;j++)   {    if(array[j] < array[pos])    {     pos=j;    }   }   var temp=array[i];   array[i]=array[pos];   array[pos]=temp;  }  console.log(array);
<?php  $array = [23,0,32,45,56,75,43,0,34];  for($i = 0; $i < count($array); $i++) {  $pos = $i;  for($j = $i + 1;$j < count($array); $j++)  {   if($array[$j] < $array[$pos])   {    $pos = $j;   }  }  $temp = $array[$i];  $array[$i] = $array[$pos];  $array[$pos] = $temp; } var_dump($array);?>

3.直接插入排序
原理:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止。             比冒泡法和选择排序的性能要更好一些

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选