码迷,mamicode.com
首页 > 编程语言 > 详细

冒泡排序,选择排序,插入排序

时间:2017-11-16 00:52:31      阅读:233      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!