一、选择排序思想
1.n个数进行排序,进行n-1次选择
2.每次选择
未排序数中找最小数下标,与前面的数交换位置
<script>
// 0 1 2 3 4
var arr = [89, 98, 78, 68, 76]
var n=arr.length
// 外层循环
for(var i=0;i<n-1;i++){
// 找最小数下标
var minIndex=i//假设最小数下标是第一个数
for(var j=i+1;j<n;j++){
if(arr[j]<arr[minIndex]){//arr[2]<arr[1] arr[3]<arr[2] arr[4]<arr[3]
minIndex=j //minIndex:2 minIndex:3 minIndex:3
}
}
// console.log("最小数下标:",minIndex);
// 交换位置
var temp=arr[i]
arr[i]=arr[minIndex]
arr[minIndex]=temp
console.log("第"+(i+1)+"次",arr)
}
console.log(arr)
</script>
二、数组去重
[9,2,5,2,8,2,5]->[9,2,5,8]
方法一:
利用indexOf或includes实现
1.定义一个空数组[]用于去重后的元素
2 .遍历原数组
方法一:
<script>
var arr = [9, 2, 5, 2, 8, 2, 5]
function testIndexOf() {
var newArr = []
for (var i = 0; i < arr.length; i++) {
// 判断新数组中是否有原数组当前元素,如果没有,存储到新数组中
// if(newArr.indexOf(9)==-1){
// newArr.push(arr[i])
// }if(newArr.includes(arr[i])==false){
// newArr.push(arr[i])
// }
if (!newArr.includes(arr[i])) {
newArr.push(arr[i])
}
}
console.log(newArr)
}
testIndexOf()
</script>
方法二 :
<script>
function test2() {
var arr = [9, 2, 5, 2, 8, 2, 5]
var newArr = []
arr.forEach(function (item) {
if (newArr.indexOf(item) == -1) {
newArr.push(item)
}
})
console.log(newArr)
}
test2()
<script>
方法三:
利用双重for循环+splice实现
外层循环遍历数组的所有元素
内层循环依次判断后面元素是否与外层元素相同,如果相同,截取掉
<script>
function test3(){
var arr = [2, 2, 2,5, 2, 8, 2, 5]
// 0 1 2 3 4 5
// [2, 2,2,5, 2, 8, 2, 5]
for(var i=0;i<arr.length;i++){
for(var j=i+1;j<arr.length;j++){