六、三部排序
package com.markerhub;public class TEST { // 负数都靠左端,正数都靠右端,0在中部static void sort(int[] x) //解题技巧:边猜测、边验证、逐步推理逻辑//极限思维 全是0 --> p++ //填空题:一般就一行代码{int p = 0;int left = 0; // 下标int right = x.length-1; // 最大下标while(p<=right){if(x[p]<0){ //left的左侧,全部<0//元素<0, 将元素与left位置元素 互换int t = x[left];x[left] = x[p];x[p] = t;left++;p++;}else if(x[p]>0){ //right的右侧,全部>0//元素>0, 将元素与right位置元素 互换int t = x[right];x[right] = x[p];x[p] = t;right--;}else{ //元素==0 left与right中间的全为0
// _________________________; //代码填空位置 p++p++;}}}public static void main(String[] args) {int []arr = {25,18,-2,0,16,-5,33,21,0,19,-16,25,-3,0};sort(arr);for(int x: arr) {System.out.print(x + " ");}}}