JS实现选择排序

 1        function selectSort(arr){
 2             var len=arr.length;
 3             var temp;
 4             for(var i=0;i<len-1;i++){
 5                 for(var j=i+1;j<len;j++){
 6                     if(arr[j]<arr[i]){
 7                         temp=arr[j];
 8                         arr[j]=arr[i];
 9                         arr[i]=temp;
10                     }
11                 }
12                 i++;
13             }
14             return arr;
15         }

选择排序的思想是:把每一个数都与第一个数比较,如果小于第一个数,就把它们交换位置;这样一轮下来,最小的数就排到了最前面;重复n-1轮,就实现了选择排序

选择排序和冒泡排序思想上有些相近

时间: 2024-10-05 07:17:55

JS实现选择排序的相关文章

排序算法——选择排序(js语言实现)

选择排序:顾名思义选择,选择排序属于O(N^2)的排序算法,意思就是选择数组中的最小的拿出来放在第一位,然后再剩下的数里面,选择最小的,排在第二位,以此类推. 例如:8  3  4  5  6  2  1  7 第一次:寻找数组中最小的数1,然后和8替换,得到 1 3 4 5 6 2 8 7 第二次:因为1的位置已经确定,所以只需要找剩下数组中最小的就行了,2和3互换得到1 2 4 5 6 3 8 7 第三次:1和2的位置已经确定,就看剩下的数中最小的数,3和4互换,结果是1 2 3 5 6 4

JS实现插入排序法和选择排序法

试着写了写,但对输出方式不太熟,所以注释部分的没能成功(我猜测是数据被覆盖了,所以最后运行结果都是'6'),或许不能用innerHTML来进行输出,暂时不管了,改天再研究研究JavaScript的输出方式. 1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 </head> 6 7 <body> 8 <!--p id = "x

冒泡排序算法和简单选择排序算法的js实现

之前已经介绍过冒泡排序算法和简单选择排序算法和原理,现在有Js实现. 冒泡排序算法 let dat=[5, 8, 10, 3, 2, 18, 17, 9]; function bubbleSort(data) { for(let i=0;i<data.length-1;i++){ for(let j=0;j<data.length-1-i;j++){ if(data[j]>data[j+1]){ [data[j],data[j+1]]=[data[j+1],data[j]]; } } }

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

冒泡排序: 对数组的中的数据,依次比较相邻两数的大小. 如果前面的数据大于后面的数据,就交换这两个数. 时间复杂度O(n^2) 1 function bubble(array){ 2 var temp; 3 for(var i=0; i<arr.length; i++){ 4 for(var j=0; j<arr.length; j++){ 5 if(arr[j]>arr[j+1]){ 6 temp = arr[j+1]; 7 arr[j+1] =arr[j]; 8 arr[j]=tem

js常考之数组选择排序

选择排序: 两个for循环嵌套,外循环记录每次循环开始的位置,内循环查找本次循环内的最小值: 实质是每循环一次将查到的最小值放在每次循环的最初开始的位置: 代码: //选择排序 function arrSort3(arr){ var len= arr.length, minIndex,nu; for(var i = 0; i < len-1; i++){ minIndex = i;//记录每次循环的第一个数为该次循环的最小值索引 for(var j = i+1; j < len; j++){

js选择排序

//选择排序var arNums = [65, 52, 74, 14, -1, 2, 88];var b = 0;for (var i = 0; i < arNums.length; i++) { for (var j = i+1; j < arNums.length; j++) { if (arNums[i] > arNums[j]) { a = arNums[i]; arNums[i] = arNums[j]; arNums[j] = a; } }}for (var i in arN

JS中的冒泡排序与选择排序

1.冒泡排序 作为最简单的排序算法之一,冒泡排序的思想是,从左到右依次比较两个存储数据的大小,如果第一个数大于第二个数,就交换两个数据,这样一轮比较之后,最大的数会放在后面,这样,每次循环比较,本轮中的最大值都会排到最后,直到循环结束,实现数组升序. 动图演示如下: 代码如下: 首先定义外层循环,如果有n个数据进行循环比较,最后一次循环排序,最后两个值的大小已经确定,所以最后一个数值不需要参与循环,即n-1次,这里就是(arr.length-1) -1次: 定义内层循环,当前位i和i+1进行比较

排序的概念(选择排序1)

                                     排序(比较与交换) 排序的稳定性:     排序之前,R[i]在R[j]前面,排序后,R[i]还在R[j]前面,则这个排序方法是稳定的.否则这个排序  方法是不稳定的.  外排序:----依赖--->内排序      待排序的数据元素数量很大,整个序列的排序过程不可能在内存中完成.  内排序:      整个排序过程不需要访问外存便能完成.                                       排序的

关于算法--蛮力法篇--选择排序

近日开始学习算法,所看课本为清华大学出版社的<算法设计与分析基础>,对简单的数据结构进行了复习,已经学习了算法效率分析基础. 本篇开始对所学算法的思想进行实际JS编码,看学习的进度,每日写一篇学到的算法,以上为背景. 蛮力法是一种直接解决问题的方法,常常基于问题的描述和所涉及的概念定义:所谓的“力”,指的是计算机的计算能力. 优点是①可解决广阔的领域各种问题:②可以产生一些合理的算法:③实例不多时,可用一种能接受的速度求解:④可解决一些小规模问题实例:⑤可作为研究或教学目的,作为其他算法的准绳