从学习数据结构开始就接触各种算法基础,但是自从应付完考试之后就再也没有练习过,当在开发的时候也是什么时候使用什么时候去查一下,现在在学习JavaScript,趁这个时间再把各种基础算法整理一遍,分别以JS和PHP语法的方式编写代码。
1.冒泡排序
原理:临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束
时间复杂度:平均情况:O(n2) 最好情况:O(n) 最坏情况:O(n2)
空间复杂度:O(1)
稳定性:稳定
1 //JavaScript语法 2 var array = [23,0,32,45,56,75,43,0,34]; 3 4 for(var i = 0; i < array.length; i++) 5 { 6 var isSort = true; 7 for(var j = 0; j < array.length - 1 - i; j++) 8 { 9 if(array[j] > array[j+1]) 10 { 11 isSort = false; 12 var temp = array[j]; 13 array[j] = array[j + 1]; 14 array[j + 1] = temp; 15 } 16 } 17 if(isSort) 18 { 19 break; 20 } 21 } 22 console.log(array);