关于2个for循环和1个for循环关于冒泡排序的比较分析
public static void main(String[] args) {
int[] i = {1,3,23,14,35,11,23,111,56,34,90,37};
doSort2(i);
}
//一个for循环实现
public static void doSort(int[] src){
int len=src.length;
int temp;
int sum = 0;
for(int i=0;i<len;i++)
{
sum++;
if(i==0){
i=1;
}
if(src[i-1]>src[i])
{
temp=src[i-1];
src[i-1]=src[i];
src[i]=temp;
i=0;
}
}
System.out.println("------------------------------->"+sum);
for(int k=0;k<len;k++){
System.out.println(src[k]+" ----- ");
}
}
//2个for循环实现冒泡排序
public static void doSort2(int[] src){
int len = src.length;
int sum = 0;
for (int i = 0; i < len; i++) {
for (int j = 0; j < len; j++) {
sum++;
int temp;
if (src[i] < src[j]) {
temp = src[j];
src[j] = src[i];
src[i] = temp;
}
}
}
System.out.println("------------------------------->"+sum);
for (int i = 0; i <len; i++) {
System.out.print(src[i] + " ");
}
}
//在一定范围内,1个for循环的效率明显比2个for要高。一旦超过之后,会大幅度降低。
//如果可以做到在一个for循环中,动态的去除已经排序掉的那个数据,就for循环次数而言,确实会大幅度降低,但就整体效率而言,不曾验证,希望有兴趣的朋友进一步研究