标签:sort 插入 个数 更新 第一个 tin div 大于 学习
从今天开始希望自己的博客可以持续的更新起来,由于本人能力有限,所以有些内容可能会有疏漏或者不全面,希望大家可以指出来,让我们一起学习,一起进步。
今天的内容是最简单的三个排序算法,冒泡排序,选择排序,插入排序,它们的时间复杂度都是O(N^2)。
冒泡排序:首先第一个数与第二个数比较,如果前面的大于后面的就交换两个数,然后第二个与第三个比较,直到比较到最后,此时最后一个数为数组最大值,然后循环次步骤,第二次比较到倒数第二位,这样经过两次循环最后两位就排好了,经过N次循环,数组就拍好了
选择排序:从数组中选择出最小的一个数,交换这个数和数组第一个数,这样第一个数就排好了,然后从第二个数到最后一个数中再选出最小的与第二个数交换,这样操作N次,数组排好顺序。
插入排序:首先比较数组第二个数和第一个数的大小,将小的放到前面。然后让第三个数依次与第二个数和第一个数比较,找到第三个数插入的位置,使得前三个数字有序,然后是第四位,如此循环,直到最后,数排好顺序。
下面上代码:由于我是学习前端的所以代码用JavaScript语言描述
//冒泡排序 function sortBubble(array){ var length=array.length; var cache; for(var j=length-1;j>0;j--){ for(var i=0;i<j;i++){ if(array[i]>array[i+1]){ cache=array[i]; array[i]=array[i+1]; array[i+1]=cache; } } } return array; }
//选择排序 function sortSelection(array){ var length=array.length; var currentMin,cache; for(var j=0;j<length;j++){ currentMin=j; for(var i=j+1;i<length;i++){ if(array[i]<array[currentMin]) currentMin=i; } cache=array[j]; array[j]=array[currentMin]; array[currentMin]=cache; } return array; }
//插入排序 function sortInsert(array){ var length=array.length; var cache; for(var i=1;i<length;i++){ for(var j=i-1;j>0;j--){ if(array[i]<array[j]){ cache=array[i]; array[i]=array[j]; array[j]=cache; i=j; }else{ break; } } } return array; }
代码都经过我亲自测试,可以完成对数组进行排序
标签:sort 插入 个数 更新 第一个 tin div 大于 学习
原文地址:http://www.cnblogs.com/web-Kongdp/p/7841628.html