首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

关于二个for循环和1个for循环关于冒泡排序的比较分析

2012-12-19 
关于2个for循环和1个for循环关于冒泡排序的比较分析public static void main(String[] args) {int[] i {

关于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循环次数而言,确实会大幅度降低,但就整体效率而言,不曾验证,希望有兴趣的朋友进一步研究

热点排行