创建一个顺序表,存放在数组 a[n]中,元素的类型为整型,设计算法调整\r\na,使其左边的所有元素小于 0,右边的所有元素大于 0(要求算法的时间复杂度和空\r\n间复杂度均为 o(n))。
时间: 2023-04-25 18:03:44 浏览: 108
算法步骤如下:
1. 定义两个指针 i 和 j,分别指向数组的第一个元素和最后一个元素。
2. 当 i < j 时,执行以下操作:
a. 如果 a[i] < ,则 i++。
b. 如果 a[j] > ,则 j--。
c. 如果 a[i] >= 且 a[j] <= ,则交换 a[i] 和 a[j]。
3. 当 i >= j 时,算法结束。
时间复杂度为 O(n),空间复杂度为 O(1)。
阅读全文