随笔-14  评论-142  文章-0  trackbacks-0

static void bubblesort(int[] a){

     int temp;

    for(int i=0; i<a.length;++i){
         for(int j=a.length-1;j>i;--j){
             if(a[j] <a[j-1]){
                    temp = a[j];
                    a[j] = a[j-1];
                    a[j-1] = temp;
 
             }


       }



   }




}
posted on 2007-09-05 16:58 liulang 阅读(94554) 评论(32)  编辑  收藏

评论:
# re: java冒泡排序算法 2007-09-05 17:07 | 杨爱友
的确,今年我面试过不下30次,经常遇到问冒泡排序的原理。你在找工作过程中吗?  回复  更多评论
  
# re: java冒泡排序算法 2007-09-05 17:17 | liulang
@杨爱友
找到了合同都签了,过了10/1就过去,  回复  更多评论
  
# re: java冒泡排序算法 2007-09-05 21:20 | Alexander.Yu
@liulang
这么久,现在还是9.5  回复  更多评论
  
# re: java冒泡排序算法[未登录] 2007-09-06 10:35 | liulang
@Alexander.Yu
我这边公司得工作到9月底,刚好合同期到!  回复  更多评论
  
# re: java冒泡排序算法 2007-09-06 10:35 | 笑春风
哪个公司啊  回复  更多评论
  
# re: java冒泡排序算法 2008-04-01 15:15 | 陈嘉新
好呀  回复  更多评论
  
# re: java冒泡排序算法 2008-08-16 16:03 | 金成成
你的好像是选择排序吧?有点不明白。  回复  更多评论
  
# re: java冒泡排序算法 2008-08-16 16:05 | 金成成
不好意思。我自己看错了。。。  回复  更多评论
  
# re: java冒泡排序算法 2008-10-22 21:03 | su kang
谢谢了!!!you are great!!!!  回复  更多评论
  
# re: java冒泡排序算法 2008-11-04 10:32 | 中智杨
@杨爱友
  回复  更多评论
  
# re: java冒泡排序算法 2008-11-04 10:33 | 中智杨
好 很好 !!!!!  回复  更多评论
  
# re: java冒泡排序算法 2008-11-12 18:47 | 吴荣
学习了  回复  更多评论
  
# re: java冒泡排序算法[未登录] 2009-12-07 17:54 | 王磊
这个排序写的不够好,真正的冒泡排序要比这个smart,因为:
1. 如果序列本身是完全有序的,冒泡排序只需要一趟排序就发现它是有序的了,不会在继续进行排序;
2. 冒泡排序会记录上趟排序交换的位置,然后从0到那一点为止
  回复  更多评论
  
# re: java冒泡排序算法 2010-11-29 11:17 | asd
哈哈哈哈。。。学习了啊~~  回复  更多评论
  
# re: java冒泡排序算法[未登录] 2011-01-20 19:47 | george
加一个哨兵  回复  更多评论
  
# re: java冒泡排序算法 2011-07-10 20:22 | qqq
明显少了一个new  回复  更多评论
  
# re: java冒泡排序算法 2011-07-11 14:10 | lclijingxuan
排序算法我都忘记了,看了你的代码才想起来。  回复  更多评论
  
# re: java冒泡排序算法 2011-08-20 11:29 | 木有
真感觉你的这个冒泡排序是有问题的,你确定你的是冒泡排序?  回复  更多评论
  
# re: java冒泡排序算法 2011-08-20 11:30 | 木有
public class io{
static void sort(int[] nums){
// 从此一个位开始循环数组
for(int i=0;i<nums.length;i++){
// 从第i+1为开始循环数组
for(int j=i+1;j<nums.length;j++){
// 如果前一位比后一位小,那么就将两个数字调换
// 这里是按降序排列
// 如果你想按升序排列只要改变符号即可
if(nums[i] < nums[j]){
int tem = nums[i];
nums[i] = nums[j];
nums[j] = tem;
}
}
}
}
public static void main(String[] args){
int [] nums = {2,5,47,8,6,2,1,4,6,3,5,9};
sort(nums);
for(int i=0;i<nums.length;i++){
System.out.println(nums[i]);
}
}
}
我觉得这个才是。  回复  更多评论
  
# re: java冒泡排序算法 2011-09-23 17:24 |
两种方法都是可行的  回复  更多评论
  
# re: java冒泡排序算法 2011-09-25 14:15 | wzy865100
您写的这个应该是选择排序,因为每次都是和外层循环角标i的数比较,而冒泡是和自己相邻的数进行比较换位!  回复  更多评论
  
# re: java冒泡排序算法 2011-09-25 14:16 | wzy865100
# re: java冒泡排序算法 2011-08-20 11:30 | 木有

public class io{
static void sort(int[] nums){
// 从此一个位开始循环数组
for(int i=0;i<nums.length;i++){
// 从第i+1为开始循环数组
for(int j=i+1;j<nums.length;j++){
// 如果前一位比后一位小,那么就将两个数字调换
// 这里是按降序排列
// 如果你想按升序排列只要改变符号即可
if(nums[i] < nums[j]){
int tem = nums[i];
nums[i] = nums[j];
nums[j] = tem;
}
}
}
}
public static void main(String[] args){
int [] nums = {2,5,47,8,6,2,1,4,6,3,5,9};
sort(nums);
for(int i=0;i<nums.length;i++){
System.out.println(nums[i]);
}
}
}



您写的这个应该是选择排序,因为每次都是和外层循环角标i的数比较,而冒泡是和自己相邻的数进行比较换位!   回复  更多评论
  
# re: java冒泡排序算法[未登录] 2011-10-11 10:59 | wei
import java.util.*;
public class maopao
{
public static void main(String[] args)
{
int a[]={2,3,6,4,7,8,9};
Arrays.sort(a);
System.out.println("排序后为: ");
for(int i=0;i<a.length;i++)
System.out.print(a[i]+" ");
}
}  回复  更多评论
  
# re: java冒泡排序算法[未登录] 2012-02-03 21:46 | 王峰
public static void main(String[] args) {
int [] array = {1,4,5,2,7,6,3,9,8,0};
for(int i = 0;i<array.length;i++){
for(int j = 0;j<array.length-i-1;j++){
if(array[j]<array[j+1]){
array[j] = array[j]+array[j+1];
array[j+1] = array[j]-array[j+1];
array[j] = array[j]-array[j+1];
}
}
}
for(int k = 0;k<array.length;k++){
System.out.println(array[k]);
}
}  回复  更多评论
  
# re: java冒泡排序算法 2012-02-17 14:45 | 无语了.
代码性能相当差!!!  回复  更多评论
  
# re: java冒泡排序算法 2012-03-28 12:47 | hushengbo
如果需要排序的不全是整型数怎么办类???  回复  更多评论
  
# re: java冒泡排序算法 2012-04-06 11:02 | pu
@hushengbo
int 换成double  回复  更多评论
  
# re: java冒泡排序算法 2012-04-20 11:18 | 千面独行客
public static void main(String[] args) {

int a[] = { 3, 7, 80, 56, 97, 34 };

for (int i = 0; i < a.length; i++) {

for (int j = 1; j < a.length-1; j++) {
if (a[j] > a[j+1]) {
a[j] = a[j+1] + a[j];
a[j+1] = a[j] - a[j+1];
a[j] = a[j] - a[j+1];

}
}
System.out.println("a[i]="+a[i]);
}
}  回复  更多评论
  
# re: 冒泡排序 java 2012-12-10 20:00 | zk
<script type="text/javascript">
var arr=[0,2,1,47,5,6];
var demo=null;
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-1-i;j++){
for(arr[j]<arr[j+1]){
demo=arr[j];
arr[j]=arr[j+1];
arr[j+1]=dome;

}
}@千面独行客
  回复  更多评论
  
# re: 冒泡排序 java 2013-05-07 20:50 | 菜鸟*伤
@wzy865100
demo=arr[j];
arr[j]=arr[j+1];
arr[j+1]=dome;
这句话不是很明白!我知道他是赋值!可是就是不懂他是怎么赋值的!!  回复  更多评论
  
# re: 冒泡排序 java[未登录] 2015-09-14 09:40 | 黄明
@千面独行客
代码写错了,
  回复  更多评论
  
# re: 冒泡排序 java 2016-05-11 09:42 | 路过的菜鸟
@菜鸟*伤
这相当于你有3个杯子,其中一个装满可乐,一个装满雪碧,还有一个空杯子;然后进行交换。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: