正负排序是将包含正数、负数和零的数组按照正数、零、负数的顺序进行排序的问题。这个问题通常使用荷兰国旗算法解决,步骤如下:
定义三个指针:low、mid、high。
遍历数组,将元素与0比较:
如果元素小于0,将它与low指向的元素交换,同时将low和mid向右移动。
如果元素等于0,将mid向右移动,继续遍历。
如果元素大于0,将它与high指向的元素交换,同时将high向左移动。
重复上述步骤直到排序完成,数组中的元素将按正数、零、负数的顺序排列。
这个算法的时间复杂度为O(n),适用于需要对包含正负数和零的数组进行排序的情况,且在常数额外空间内完成。