JavaScript排序算法之--选择排序

Bree ·
更新时间:2024-11-10
· 722 次阅读

选择排序用的是假设性原则
假定一个数字是最小值
验证这个数字是不是最小值,如果不是,换位

假设第一个数字是最小的

var min = arr[0]; var index = 0

和数组之中的其余项进行比较,查看是不是最小值

for(var i = 1 ; i < arr.length ; i ++){ //如果有比假定数字还小的数字 if( arr[i] < min ){ //记录数字以及下标,暂时不换位 min = arr[i]; index = i; } }

换位操作:
假定最小值是0,实际上的最小值是index,换位
1.先覆盖原有的项

arr[index] = arr[0];

2.把最小值换到第0位上

arr[0] = min;

第二趟

var min = arr[1]; var index = 1;

和数组之中的其余项进行比较,查看是不是最小值

for(var i = 1 ; i < arr.length ; i ++){ //如果有比假定数字还小的数字 if( arr[i] < min ){ //记录数字以及下标,暂时不换位 min = arr[i]; index = i; } }

换位操作:
假定最小值是0,实际上的最小值是index,换位
1.先覆盖原有的项

arr[index] = arr[1];

2.把最小值换到第0位上

arr[1] = min;

结论:

var arr = [1,9,8,5,4,2,10] for( var k = 0 ; k < arr.length ; k ++){ // 假定最小值下标 var min = arr[k]; var index = k; // 求证最小值 for( var i = k + 1 ; i < arr.length ; i ++){ if(arr[i] < min){ min = arr[i]; index = i } } //最小值和假定最小值换位 arr[index] = arr[k]; arr[k] = min; } console.log(arr);

运行结果:

[1, 2, 4, 5, 8, 9, 10]
作者:珍夕丶



选择排序 选择 算法 JavaScript

需要 登录 后方可回复, 如果你还没有账号请 注册新账号