/*- ==========================================================
* 文件名 :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型是一致的
}
}
}
转载于:https://my.oschina.net/u/186539/blog/45521


609

被折叠的 条评论
为什么被折叠?



