《JAVA程序设计基础》实验四 冒泡排序

/*- ==========================================================
*     文件名  :YPR_BubbleSort.java
*     开发人员:袁培荣 CK0904班 学号:U200911171
*     当前版本:1.0.0.2595
*     建立时间:2012-03-09
*     修改时间:2012-03-09
*     功能说明:《JAVA程序设计基础》实验四 冒泡排序
*     版权说明:版权全部 袁培荣 YuanPeirong 
*     编译环境:Windows 7(x64) SP1 简体中文专业版
*     JDK版本: JDK 7U3-B05(Windows-x64)
- ==========================================================*/
/*- ==========================================================
冒泡排序(BubbleSort)的基本概念是:
依次比较相邻的两个数,将小数放在前面,大数放在后面。
即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。
而后比较第2个数和第3个数,将小数放前,大数放后,
如此继续,直至比较最后两个数,将小数放前,大数放后。
至此第一趟结束,将最大的数放到了最后。
在第二趟:仍从第一对数开始比较
(由于可能因为第2个数和第3个数的交换,使得第1个数再也不小于第2个数),
将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已是最大的),
第二趟结束,在倒数第二的位置上获得一个新的最大数(其实在整个数列中是第二大的数)。
如此下去,重复以上过程,直至最终完成排序。
- ==========================================================*/ 
import java.io.*;
public class YPR_BubbleSort {
    public static void main(String args [ ]) {
        int myArray[]={5,1,4,7,6,9,8,12,11};
        System.out.println("这是一个冒泡排序的演示程序");
        System.out.println("排序前");
        m_PrintArray(myArray);
        m_BubbleSort(myArray);
        System.out.println("排序后");
        m_PrintArray(myArray);
    }
    //对数组进行冒泡排序
    public static void m_BubbleSort(int iArray[]) { //数组是引用类型,参数按地址传递
        for(int i=1;i<iArray.length;i++) {   //若数组长度为n,则进行n-1趟排序
            int exchangeCnt=0; //用于记录每趟交换次数
            for(int j=0;j<iArray.length-i;j++) { //j=0 to (n-i-1),(j+1)= 1 to (n-i) 
                if(iArray[j]>iArray[j+1]) {
                    int iTemp=iArray[j];
                    iArray[j]=iArray[j+1];
                    iArray[j+1]=iTemp;
                    exchangeCnt++;
                }
            }
            if (exchangeCnt==0) //若是某趟交换次数为0,说明已经排好序
                {break;}        //直接跳出排序过程,方法结束
        }
    }
    //打印数组
    public static void m_PrintArray(int iArray[]) { //数组是引用类型,参数按地址传递
        for(int i=0;i<iArray.length;i++) {
            if(i==iArray.length-1)
                {System.out.print(iArray[i]+"\n");}
                //注意这里"\n"不能写成'\n' ,由于'\n'和int型用+链接时表明10
                //由于char型和int型是一致的
            else
                {System.out.print(iArray[i]+",");}
                //注意这里","不能写成',' ,由于','和int型用+链接时表明44
                //由于char型和int型是一致的
        }
    }
}
相关文章
相关标签/搜索