
思路:
以0为界,有点类似快速排序的Partition,小于0的元素用j从头开始记录,大于等于0的元素用k从尾开始记录。
- void Exchange(Sqlist &L){
- int i,j=0,k=L.length-1; //j从表头,k从表尾
- for(i=0;i
//遍历原表 - if(L.data[i]<0) //小于0从头往后记录,否则从尾往前记录
- L.data[j++]=L.data[i];
- else
- L.data[k--]=L.data[i];
- }
- }