有一个数组中存着RGB三种颜色的球,需要按RGB的顺序排序数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
  let RGBData = ['R', 'G', 'B', 'R', 'R', 'G', 'B', 'R', 'R', 'G', 'B', 'R']

function sortRGB(arr) {
let i,
j,
len,
rear,
front = 0
rear = arr.length - 1
len= rear + 1

for (i = front, j = 0; j < len; ) {
if (arr[i] == 'R') {
swap(i, front)
//当调换回来的还是R
while (arr[front] == 'R') {
i++
front++
j++
}
} else if (arr[i] == 'B') {
swap(i, rear)
//当调换回来的还是B
while (arr[rear] == 'B') {
rear--
j++
}
} else {
i++
j++
}
}
return arr
}

// 交换
function swap(index1, index2) {
let temp
temp = RGBData[index1]
RGBData[index1] = RGBData[index2]
RGBData[index2] = temp
}
console.log(sortRGB(RGBData))

}

两个有序数组a,b,请将a,b合成为一个新的有序数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

const merge=(a,b)=>{
let arr=[]
let i=0,j=0
while(i<a.length&&j<b.length){
if(a[i]<b[j]){
arr.push(a[i])
i++
}else{
arr.push(b[j])
j++
}
}
while(i<a.length){
arr.push(a[i++])
}
while(j<b.length){
arr.push(b[j++])
}
return arr
}
let arr1=[1,100,500,700,100000]
let arr2=[100,3000,6000]
console.log(merge(arr1,arr2))