java冒泡算法小程序(转)

本文介绍了一种使用Java实现的冒泡排序算法,该算法能够对不同数据类型的数组进行递增或递减排序,包括char、int、long、float和double等基本数据类型。

java冒泡算法小程序

/**这是一个冒泡排序的小程序
 冒泡排序是指把待排序列中的元素当作气泡一样,让它冒出水面。具体是从序列中的第一个元素开始将p[i]与p[i+1]进行比较看是否是逆序,是则交换它们的值,这样可以将最值移到p[n-1],然后再开始一次,将最值移到p[n-2],如此循环到将最值移到p[n-n];
*/

public class BubbleSort
{
 public static char []ascending(char [] with){ //char类型递增排序
  char temp;
  int length = with.length; //计算数组的长度
  for(int i=length-1; i>=0; i--){ //i表示最值被移到的位置
   for(int j=0; j<i; j++){ //通过冒泡寻找最值
    if(with[j] > with[j+1]){ //如果逆序则交换
     temp = with[j+1];
     with[j+1] = with[j];
     with[j] = temp;
    }
   }
  }
  return with;
 }

 public static char []descending(char [] with){ //char类型递减排序
  char temp;
  int length = with.length; //计算数组的长度
  for(int i=length-1; i>=0; i--){ //i表示最值被移到的位置
   for(int j=0; j<i; j++){ //通过冒泡寻找最值
    if(with[j] < with[j+1]){ //如果逆序则交换
     temp = with[j+1];
     with[j+1] = with[j];
     with[j] = temp;
    }
   }
  }
  return with;
 }
 public static int []ascending(int [] with){ //int类型递增排序
  int temp;
  int length = with.length; //计算数组的长度
  for(int i=length-1; i>=0; i--){ //i表示最值被移到的位置
   for(int j=0; j<i; j++){ //通过冒泡寻找最值
    if(with[j] > with[j+1]){ //如果逆序则交换
     temp = with[j+1];
     with[j+1] = with[j];
     with[j] = temp;
    }
   }
  }
  return with;
 }

 public static int []descending(int [] with){ //int类型递减排序
  int temp;
  int length = with.length; //计算数组的长度
  for(int i=length-1; i>=0; i--){ //i表示最值被移到的位置
   for(int j=0; j<i; j++){ //通过冒泡寻找最值
    if(with[j] < with[j+1]){ //如果逆序则交换
     temp = with[j+1];
     with[j+1] = with[j];
     with[j] = temp;
    }
   }
  }
  return with;
 }

 public static long []ascending(long [] with){ //long类型递增排序
  long temp;
  int length = with.length; //计算数组的长度
  for(int i=length-1; i>=0; i--){ //i表示最值被移到的位置
   for(int j=0; j<i; j++){ //通过冒泡寻找最值
    if(with[j] > with[j+1]){ //如果逆序则交换
     temp = with[j+1];
     with[j+1] = with[j];
     with[j] = temp;
    }
   }
  }
  return with;
 }

 public static long []descending(long [] with){ //long类型递减排序
  long temp;
  int length = with.length; //计算数组的长度
  for(int i=length-1; i>=0; i--){ //i表示最值被移到的位置
   for(int j=0; j<i; j++){ //通过冒泡寻找最值
    if(with[j] < with[j+1]){ //如果逆序则交换
     temp = with[j+1];
     with[j+1] = with[j];
     with[j] = temp;
    }
   }
  }
  return with;
 }
 public static float []ascending(float [] with){ //float类型递增排序
  float temp;
  int length = with.length; //计算数组的长度
  for(int i=length-1; i>=0; i--){ //i表示最值被移到的位置
   for(int j=0; j<i; j++){ //通过冒泡寻找最值
    if(with[j] > with[j+1]){ //如果逆序则交换
     temp = with[j+1];
     with[j+1] = with[j];
     with[j] = temp;
    }
   }
  }
  return with;
 }

 public static float []descending(float [] with){ //float类型递减排序
  float temp;
  int length = with.length; //计算数组的长度
  for(int i=length-1; i>=0; i--){ //i表示最值被移到的位置
   for(int j=0; j<i; j++){ //通过冒泡寻找最值
    if(with[j] < with[j+1]){ //如果逆序则交换
     temp = with[j+1];
     with[j+1] = with[j];
     with[j] = temp;
    }
   }
  }
  return with;
 }

 public static double []ascending(double [] with){ //double类型递增排序
  double temp;
  int length = with.length; //计算数组的长度
  for(int i=length-1; i>=0; i--){ //i表示最值被移到的位置
   for(int j=0; j<i; j++){ //通过冒泡寻找最值
    if(with[j] > with[j+1]){ //如果逆序则交换
     temp = with[j+1];
     with[j+1] = with[j];
     with[j] = temp;
    }
   }
  }
  return with;
 }

 public static double []descending(double [] with){ //double类型递减排序
  double temp;
  int length = with.length; //计算数组的长度
  for(int i=length-1; i>=0; i--){ //i表示最值被移到的位置
   for(int j=0; j<i; j++){ //通过冒泡寻找最值
    if(with[j] < with[j+1]){ //如果逆序则交换
     temp = with[j+1];
     with[j+1] = with[j];
     with[j] = temp;
    }
   }
  }
  return with;
 }

 /*public static void main(String []args){
  //char []test = {'d','h','y','4','5','旧','q','o','3'}; //测试数组
  //char []temp;

  //int []test = {1,2,5,4,8,6,5,2,14,5,4,8,9,6,5,2,55,11,00,1,0};
  //int []temp;

  //long []test = {4,5,4,5,4,5,2,5,22,11,10,11,02,11,14,25,2,1,0,45,54,65,56,32};
  //long []temp;

  //float []test = {1.2f,3.2f,6.3f,5.3f,6.0f,5f,9.5f,1.1f,2,5f,3f,2f,6f,5f,4f,7f,8f,9f,0};
  //float []temp;

  double []test = {1.2,2.1,3.2,1.3,36.2,63.2,0.2,0,2.3,.1,5.3,9.5};
  double []temp;

  temp = ascending(test);
  int length = temp.length;
  System.out.println("this is sort Ascending:"); //递增测试
  for(int i=0; i<length; i++){
   System.out.println(temp[i]);
  }

  temp = descending(test);
  System.out.println("this is sort descending:"); //递减测试
  for(int i=0; i<length; i++){
   System.out.println(temp[i]);
  }
 }*/
}
文章出处:飞诺网(http://www.diybl.com/course/3_program/java/javajs/20090526/167845.html)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值