前端面试之选择排序

发布时间 2023-10-31 10:39:11作者: 来菜

选择排序:

原理解析:

  将未排序的数组中的第一个数据作为基准数据,然后对比除基准数据和已排序数据之外的数据,找到其中的最小数据,然后将最小数据和基准数据进行位置交换。

时间复杂度:

  时间复杂度O(n^2)

代码实现:

const choseArr = [5, 2, 1, 4, 43, 23, 34]
for (let i = 0; i < choseArr.length - 1; i++) {
 // minIndex用来存储最小的数据下标,i为当前的基准数据下标 let minIndex
= i // 这个是用来存储开始的时候数值的index和比较之后最小值的数据 for (let j = i + 1; j < choseArr.length; j++) { if(choseArr[j]<choseArr[minIndex]){ minIndex=j; } } // 给最小值和最先的换位置 [choseArr[i],choseArr[minIndex]]=[choseArr[minIndex],choseArr[i]] } console.log(choseArr);

 我们这里有一个未排序的数组,我们要对里面的数据进行选择排序,首先是选中第一个为排序的数据作为基准,【下标为0的数据5】,在与后面没有进行排序的数据来进行对比,选择最小的数据然后进行替换。然后在选择下标为1的数据作为基准与后面未排序的数据进行对比替换。

 

数组【3,5,2,0,1】

第一次对比之后:【0,5,2,3,1】;

第二次对比之后:【0,1,2,3,5】;