public static void main(String[] args) { sortalgorim sortalgorim = new sortalgorim(); Vector output = new Vector(); int a[]= {2,1,3,5,6,2,3,4,5,8,3,4,2,2,1,1,5,6,5,6,7,8,9};//initiate array int index = 0; final int minlen = 4;//at least 4 element label: while (index<a.length){ int tmpidx = index+minlen-1; Vector outputseg = new Vector(); while (tmpidx<a.length){ boolean reverse = false; for(int i=index+1;i<=tmpidx;i++){ for (int j=index;j<i;j++){ if (a[j]>a[i]){ if (!reverse) { reverse = true; } else { if (tmpidx-index>=4) {//if long enough,put it in output for (int k=index;k<tmpidx;k++) outputseg.addElement(new Integer(a[k])); output.addElement(outputseg); index = tmpidx; continue label; }else{ index++; continue label; } } } } } tmpidx = tmpidx+1; } if (index<tmpidx-5){ for (int k=index;k<tmpidx;k++) outputseg.addElement(new Integer(a[k])); output.addElement(outputseg); break; } } for (int i=0;i<output.size();i++) { Vector seg = (Vector)output.get(i); for (int j=0;j<seg.size();j++) System.out.println(seg.get(j)); System.out.println("-------------"); } }我没有把符合条件的都做成4个一组,只是把它全拉出来了,要做成4个一组也方便,只要控制一下index和tmpidx的跳动就可以了。
俺给你寄过去
sortalgorim sortalgorim = new sortalgorim();
Vector output = new Vector();
int a[]= {2,1,3,5,6,2,3,4,5,8,3,4,2,2,1,1,5,6,5,6,7,8,9};//initiate array
int index = 0;
final int minlen = 4;//at least 4 element
label: while (index<a.length){
int tmpidx = index+minlen-1; Vector outputseg = new Vector();
while (tmpidx<a.length){
boolean reverse = false;
for(int i=index+1;i<=tmpidx;i++){
for (int j=index;j<i;j++){
if (a[j]>a[i]){
if (!reverse) {
reverse = true;
}
else {
if (tmpidx-index>=4) {//if long enough,put it in output
for (int k=index;k<tmpidx;k++)
outputseg.addElement(new Integer(a[k]));
output.addElement(outputseg);
index = tmpidx;
continue label;
}else{
index++;
continue label;
}
}
}
}
}
tmpidx = tmpidx+1;
}
if (index<tmpidx-5){
for (int k=index;k<tmpidx;k++)
outputseg.addElement(new Integer(a[k]));
output.addElement(outputseg);
break;
}
}
for (int i=0;i<output.size();i++)
{
Vector seg = (Vector)output.get(i);
for (int j=0;j<seg.size();j++)
System.out.println(seg.get(j));
System.out.println("-------------");
}
}我没有把符合条件的都做成4个一组,只是把它全拉出来了,要做成4个一组也方便,只要控制一下index和tmpidx的跳动就可以了。