数据结构中设任意n个整数存放于数组A(1:n)中,试编写算法,将所有正数排在所有负数面前
时间: 2024-05-08 22:19:38 浏览: 90
好的,这是一个关于数据结构的问题,我会尽力回答。可以使用双指针的方法,一个指向数组的开头,一个指向数组的结尾,从两端开始遍历数组,如果左边是负数,右边是正数,则交换它们的位置。重复这个过程直至两个指针相遇。以下是具体的实现代码:
```python
def rearrange_array(arr):
left = 0
right = len(arr) - 1
while left < right:
while arr[left] < 0:
left += 1
while arr[right] >= 0:
right -= 1
if left < right:
arr[left], arr[right] = arr[right], arr[left]
return arr
```
这个算法的时间复杂度为O(n),因为只需要遍历整个数组一次。
阅读全文