问题
因为想换种结构,想用链表来解决,但是结果打印不出来,无限循环
package sort;
import java.util.*;
import org.junit.Test;
public class AntiOrder {
public int count(int[] A, int n) {
int num = 0;
Node root = createLinkList(A);
Node cur;
while(root.next!=null) {
cur = root;
while(cur.next!=null) {
if(cur.a<cur.next.a)num++;
}
root = root.next;
}
return num;
}
public Node createLinkList(int[] A) {
Node root = new Node(A[A.length-1]);
Node cur = root;
for (int i = A.length-2; i >=0; i--) {
cur.next = new Node(A[i]);
cur = cur.next;
}
return root;
}
public class Node{
int a;
Node next;
public Node(int a) {
this.a = a;
}
}
@Test
public void test() {
int[] a = {1,2,3,4,5,6,7,0};
int count = count(a, 8);
System.out.println("count="+8);
}
}
后来还是用for循环比较简单,还是不要装逼了
public int count(int[] A, int n) {
int num = 0;
for (int i = 1; i < n; i++) {
for (int j = i-1; j >=0; j--) {
if(A[i]<A[j]) {
num++;
}
}
}
return num;
}