优化前:
public static void main(String[] args) {
Integer l[] = {1,5,2};
sort(l,0);
}
public static void sort(Integer[] l, int index) {
if (index == l.length - 1) {
System.out.println(Arrays.asList(l));
return;
}
for (int i = index; i < l.length; i++) {
Integer[] ll = Arrays.copyOf(l, l.length);
ll[index] = l[i];
ll[i] = l[index];
sort(ll, index + 1);
}
}
优化后:
public static void sort(Integer[] l, int index) {
if (index == l.length - 1) {
System.out.println(Arrays.asList(l));
return;
}
for (int i = index; i < l.length; i++) {
Integer tem = l[index];
l[index] = l[i];
l[i] = tem;
sort(l, index + 1);
l[i] = l[index];
l[index] = tem;
}
}

本文介绍了一种基于递归的数组排序算法,并对比了优化前后的两种实现方式。通过避免使用数组复制来提高性能。
1462

被折叠的 条评论
为什么被折叠?



