JS入门之关于冒泡排序

来源:互联网 发布:秦丝软件 编辑:程序博客网 时间:2024/06/06 10:49


冒泡排序
理论:比较轮数 n-1   比较次数 n-1次   符合条件就交换位置
核心:双重for 循环
步骤:双重for 循环  指定轮数和次数  判断是都符合最后的标准,如果符合就交换位置

                //冒泡排序简单版
                var arr = [23,54,65,43,12,58];var temp;var m = 0;  //循环总次数for (var i = 0; i < arr.length-1; i++) {// 控制轮数for (var j = 0; j < arr.length-1; j++) {// 控制次数if (arr[j]>arr[j+1]) {// 判断是否符合标准temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;// 交换位置  从小到大,前面比后面大就交换。}m++;}}console.log(m);console.log(arr); // 冒泡排序中级版var arr = [23,54,65,43,12,58];var temp;var m = 0;for (var i = 0; i < arr.length-1; i++) {// 控制轮数for (var j = 0; j < arr.length-1-i; j++) {// 控制次数  arr.lenth-1-i因为每一轮都会比较出最大值,所以最大值可不必再次比较。if (arr[j]>arr[j+1]) {// 判断是否符合标准temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;// 交换位置  从小到大,前面比后面大就交换。}m++;}}console.log(m);console.log(arr);

                // 冒泡排序最终版var arr = [23,54,65,43,12,58];var temp;var m = 0;//循环次数for (var i = 0; i < arr.length-1; i++) {// 控制轮数var bool = true;// 开闭原则for (var j = 0; j < arr.length-1-i; j++) {// 控制次数  arr.lenth-1-i因为每一轮都会比较出最大值,所以最大值可不必再次比较。if (arr[j]>arr[j+1]) {// 判断是否符合标准temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;// 交换位置  从小到大,前面比后面大就交换。bool = false;// 如果有循环数字变动就令 bool值为false}m++;}if (bool= true) {break;// 如果 bool值为true,则证明后面无任何调换 ,排序已经完成,因此可以跳出循环。}}console.log(m);console.log(arr);



原创粉丝点击