标签:arr 下标 max maxIndex js 选择 length let 排序
**选择排序**
选择排序每次都会获得最大或者最小元素的下标,每次遍历结束替换下标元素的位置,获得一个最值,他不需要像冒泡排序一样,每一次的遍历需要进行多次交换
let arr = [8,9,1,7,2,3,5,4,6,0]; for(let i = 0;i < arr.length;i++){ let maxIndex = 0; //存储最大值下标 for(let j = 0;j < arr.length-i;j++){ if(arr[maxIndex] < arr[j]){ maxIndex = j; } } let t = arr[maxIndex]; arr[maxIndex] = arr[arr.length-i-1]; arr[arr.length-i-1] = t; console.log([...arr]); } console.log(arr);
选择排序是每一轮找到一个最大下标保存,然后继续进行直到最后一轮,结束。
具体步骤:
第一轮 : i = 0 设置最大下标为0 8=8 最大下标为0 arr[0]max = 8
8<9 最大下标为1 arr[1]max=9
9>1 最大下标不变 arr[1]max=9
9>7 最大下标不变 arr[1]max=9
9>2 最大下标不变 arr[1]max=9
9>3 最大下标不变 arr[1]max=9
9>5 最大下标不变 arr[1]max=9
9>4 最大下标不变 arr[1]max=9
9>6 最大下标不变 arr[1]max=9
9>0 最大下标不变 arr[1]max=9
第一轮结束,最大下标为1,此时i=0,将arr[1]的数据和数组arr[arr.length-1-i]替换,得到最大数。此时arr=[8,0,1,7,2,3,5,4,6,9]
依次类推,得到最终结果
标签:arr,下标,max,maxIndex,js,选择,length,let,排序 来源: https://www.cnblogs.com/lisir-blogshare/p/16575897.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。