编写程序将数组负数放前面正数放后面
时间: 2025-01-30 17:04:48 浏览: 44
编写一个程序将数组中的负数放在正数前面,可以采用两步策略:
1. 首先创建两个指针,一个 `start` 指向数组开始位置,另一个 `end` 到达数组结尾之前。
2. 使用一个 while 循环,条件是 `start < end`:
a. 检查 `arr[start]` 是否为正数,如果是,则保持不变;如果不是正数,将 `arr[start]` 与 `arr[end]` 交换位置,然后 `end` 向前移动一位。
b. 当 `start` 找到正数后,`start` 自动向前移动一位,继续寻找下一个负数。
3. 循环结束后,数组就按照负数在前、正数在后的顺序排列了。
这里是一个简单的 Python 示例实现:
```python
def separate_numbers(arr):
start = 0
end = len(arr) - 1
while start < end:
if arr[start] >= 0: # 如果是正数或零
start += 1
else: # 如果是负数
arr[start], arr[end] = arr[end], arr[start] # 交换
end -= 1
return arr
# 测试
arr = [4, -7, 2, 9, -5, 0]
sorted_arr = separate_numbers(arr)
print("原数组:", arr)
print("排序后数组:", sorted_arr)
```
阅读全文
相关推荐


















