62,612
社区成员
发帖
与我相关
我的任务
分享
/**
*
* @type_name:BubbleSort1
* @package_name: sortT
* @file_name: BubbleSort1.java
* @author: 33889
* @E-mail: 2265693653@qq.com
* @date :2017年10月12日 下午9:51:43
* @JDKversion: 1.8_121U
* @parameter
* @since
* @return
* @tags:
* @marks:比较完整的冒泡排序(升序)
*/
public class BubbleSort1 {
public static void main(String [] args){
int [] a=new int []{1,99,20,30,50,66,94,12};
int [] a1={1,122,33,423,543,53};
System.out.println("初始数组数据:");
for (int i : a1) {
System.out.print(i+" ");
}
System.out.println(" ");
//外层循环表示排序轮数
for(int i=0;i<a1.length-1;++i){
//提示轮数
System.out.println("这是第:"+(i+1)+"轮比较");
//内层循环表示单次排序的比较次数
for(int j=0;j<a1.length-i-1;++j){
//如果后一个数大于前一个数
if(a1[j+1]<a1[j]){
//交换位置
int x=a1[j];
a1[j]=a1[j+1];
a1[j+1]=x;
// 输出两个交换位置的值;
System.out.println(a1[j + 1] + "和" + a1[j] + "换位置" + " ");
} else {// 如果没有交换则打印空格,用来保持输出格式工整;
System.out.println(" 没有数字被交换位置 ");
}
// 用迭代循环输出本次排序完成后的结果;
for (int num : a1) {
System.out.print(num + " ");
}
System.out.println(" ");
// 提示进行了一次比较;
System.out.println("进行了一次比较,"+"这是第:"+(j+1)+"次比较");
}
}
System.out.println("完毕");
for (int i : a1) {
System.out.print(i+" ");
}
}
}
自己看看过程吧,不要去死记,重在理解,不理解记住了也没用private static void sort(int[] numbers)
{
int change = 0;
for(int i = 1; i < numbers.length; i++)
{
boolean flag = true;
for(int j = 1; j <= numbers.length - i; j++)
{
if(numbers[j-1] > numbers[j])
{
change = numbers[j-1];
numbers[j-1] = numbers[j];
numbers[j] = change;
flag = false;
}
}
if(flag)
{
break;
}
}
}
public static void sort(int[] a) {
for (int i = 0; i < a.length; i++) {
for (int j = i + 1; j < a.length; j++) {
if (a[i] > a[j]) {
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
}