关节点算法 设任意n个整数存放于数组A(1:n)中,试编写算法,将所有正数排在所有负数前面(要求算法复杂度为0(n))?
浏览量:2573
时间:2021-03-11 15:07:51
作者:admin
设任意n个整数存放于数组A(1:n)中,试编写算法,将所有正数排在所有负数前面(要求算法复杂度为0(n))?
��这个就很多中方法了,比如说按照从大到小排序,那么肯定是正数在前,负数在后。排序的方法就有很多了,冒泡,插入,选择,快排,堆排序等等。当然上面的方法是对应于排序好的,如果没有排序的要求的话,可以使用这一种方法:首先构造两个指针low和high分别指向数组的头和尾,然后判断A[low],如果大于0,low ,如果小于0判断A[high],如果A[high]<0,那么high--,如果A[high]>0,交换A[low]和A[high],同时low ,high--,判断结束的标准是low>=high,简单代码如下:low=0high=A.lengthwhile(low<high){if(A[low]>0)low else{if(A[high]<0)high--else{//交换A[low]和A[high]low high--}}}详细代码自己完善吧~
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。