当前位置: 面试刷题>> 按照颜色对数组排序 (经典算法题500道)
**题目描述补充**:
给定一个二维数组`colors`,其中每个元素代表一个物体,物体的颜色由其内部子数组的第一个元素表示(假设颜色以字符串形式给出,如`"red"`, `"blue"`, `"green"`等),剩余元素可能包含该物体的其他属性(如大小、重量等,但本题不考虑这些属性)。要求编写一个函数,根据颜色的字典序对数组进行排序,即相同颜色的物体应该排在一起,并且颜色按照字典序从小到大排列。
**示例输入**:
```json
[
["red", 10],
["blue", 5],
["green", 8],
["red", 20],
["blue", 15]
]
```
**示例输出**:
```json
[
["blue", 5],
["blue", 15],
["green", 8],
["red", 10],
["red", 20]
]
```
**PHP代码示例**:
```php
function sortColors($colors) {
usort($colors, function($a, $b) {
return strcmp($a[0], $b[0]);
});
return $colors;
}
// 示例用法
$colors = [["red", 10], ["blue", 5], ["green", 8], ["red", 20], ["blue", 15]];
$sortedColors = sortColors($colors);
print_r($sortedColors);
```
**Python代码示例**:
```python
def sort_colors(colors):
return sorted(colors, key=lambda x: x[0])
# 示例用法
colors = [["red", 10], ["blue", 5], ["green", 8], ["red", 20], ["blue", 15]]
sorted_colors = sort_colors(colors)
print(sorted_colors)
```
**JavaScript代码示例**:
```javascript
function sortColors(colors) {
return colors.sort((a, b) => a[0].localeCompare(b[0]));
}
// 示例用法
const colors = [["red", 10], ["blue", 5], ["green", 8], ["red", 20], ["blue", 15]];
const sortedColors = sortColors(colors);
console.log(sortedColors);
```
**码小课网站提示**:
码小课网站中有更多关于算法和数据结构的相关内容,包括排序算法、数组操作、函数式编程等,欢迎大家访问学习,不断提升自己的编程能力。