Java代码 写一个冒泡排序

原创 2015年05月28日 09:23:32

第一次使用这个编辑器好好用

醉了。。。刚写了一篇,结果不小心给关了,还要重新写。。。

  • 冒泡排序
    放空了这么就,终于知道自己该干什么,找到实习之后这又是一个新的开始,不要羡慕别人,因为你在别人眼里也是独一无二的言归正传,我是用Java写的冒泡排序,虽然冒泡排序是排序算法里面比较简单的,但是自己写出来之后还是很有成就感的。
    在写的过程中遇到的问题就是swap方法的调用问题,一定要类型相同才能调用

冒泡排序的思想:比较相邻的两个数,如果前一个比后一个大,则将其交换位置。


Java代码如下:

package sort;

public class BubbleSort {
    //第一种方法完全就是按照冒泡排序的定义来写的
    //代码完全没有经过优化
    public void Bubble1(int[]a,int n){
        int i,j;
        for(i=0;i<n-1;i++){
            for(j=1;j<n-i;j++){
                if(a[j-1]>a[j]){
                    swap(a,j-1,j);
                    //int k;
                    //k=a[j-1];
                    //a[j-1]=a[j];
                    //a[j]=k;
            }
        }
    }
   }
   //第二种方法代码优化一下 写一个标志位,如果一趟下来发生交换则标志为true,如果未发生交换,为false
    //则代表排序已完成
    public void Bubble2(int[]a,int n){
        int u,v;
        boolean flag;
        flag=true;
        while(flag){
            flag=false;
            for(u=0;u<n-1;u++){
                for(v=1;v<n-u;v++){
                    if(a[v-1]>a[v])
                        swap(a,v-1,v);
                }
                flag=false;
            }
            }

    }
//第三种方法,如果有一个50个数的数组,仅前面10个数是无序的,后面40个数是有序的,并且大于前面10个数,那么
    //第一次排序后,最后发生交换的位置必小于10,且这个位置之后的数据必定是有序的,记录下这个位置后,
    //以后遍历就从头到这个位置就可以了
    public void Bubble3(int[]a,int n){
        int p,q;
        int flag1=n;
        while(flag1>0){
            q=flag1;
            flag1=0;
            for(p=1;p<q;p++){
                if(a[p-1]>a[p])
                    swap(a,p-1,p);
                flag1=p;
            }
        }
    }
    public void swap(int a[],int p,int q ){
        int k;
        k=a[p];
     a[p]=a[q];
        a[q]=k;

    }  

   }

冒泡排序的N种写法

第一种写法: #include   using namespace std; void bubbleSort(int arr[], int n) { for (int i = 0; i { i...

java编程题:用Java实现一个冒泡排序算法

/** * java编程题:用Java实现一个冒泡排序算法 */ public class Test { public static void main(String[] args) { ...

用Java写一个冒泡排序。

import java.util.Comparator;   /**  * 排序器接口(策略模式: 将算法封装到具有共同接口的独立的类中使得它们可以相互替换)  * @author骆昊 ...

用java写一个对数组进行冒泡排序法

用java写一个对数组进行冒泡排序法

程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现)

接上一篇:程序员必知的8大排序(二)-------简单选择排序,堆排序(java实现)   5.冒泡排序 (1)基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依...
  • pzhtpf
  • pzhtpf
  • 2012年05月12日 15:22
  • 260888

java实现数组的冒泡排序、选择排序代码

数组排序之冒泡排序: 相邻元素两两比较,大的往后放,第一次完毕,最大值出现在了最大索引处package cn.lgt.sortarray;public class MaoPaoSort { ...
  • euller
  • euller
  • 2016年11月22日 23:06
  • 11715

[排序算法]--冒泡排序的三种实现(Java)

冒泡排序是非常好理解的,以从小到大排序为例,每一轮排序就找出未排序序列中最大值放在最后。 设数组的长度为N: (1)比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。(2)这样...

Java中的冒泡排序算法-简单实例

冒泡算法的原理实现:(从小到大排序)   1:比较相邻的两个元素,如果第一个比第二个大就交换位置。   2:对每一对相邻的元素进行比较,从开始第一队到结尾的最后一对,这样最后的元素就是最大的了。   ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java代码 写一个冒泡排序
举报原因:
原因补充:

(最多只允许输入30个字)