package com.hpu.demo;



public class Demo2 {


/**

* 实现冒泡排序算法

* @param args

*/

public static void main(String[] args) {

int[] data = {4,2,6,9,5,7,8};

System.out.println("排序前:");

printData(data);

System.out.println("排序后:");

mySelfSort1(data);

//printData(data);

}


/**

* 排序方法

* @param data

* @param string

* 冒泡排序升序

*/

private static void mySelfSort(int[] data) {

for (int i = 0; i < data.length-1; i++) {//除去最后一个元素,每个元素都要执行一次这样的比较

for(int j = 0; j < data.length-1-i;j++)//这里减去1是因为第一次最大的肯定移动到最后一位,下次只比较到length-1-i就好了,减少循环次数,这样压缩排序空间,提高效率

{

int a = data[j];

int b = data[j+1];

if(a > b)

{

data[j] = b;

data[j+1] = a;

}

}

System.out.println("第"+(i+1)+"次排序结果:");

printData(data);

}

}


/**

* 排序方法

* @param data

* @param string

* 冒泡排序降序

* 明白升序之后,降序就更加简单了

*/

private static void mySelfSort1(int[] data) {

for (int i = 0; i < data.length-1; i++) {//除去最后一个元素,每个元素都要执行一次这样的比较

for(int j = 0; j < data.length-1-i;j++)//这里减去1是因为第一次最小的肯定移动到最后一位,下次只比较到length-1-i就好了,减少循环次数,这样压缩排序空间,提高效率

{

int a = data[j];

int b = data[j+1];

if(a < b)

{

data[j] = b;

data[j+1] = a;

}

}

System.out.println("第"+(i+1)+"次排序结果:");

printData(data);

}

}

/**

* 打印数组

* @param data

*/

private static void printData(int[] data) {


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

if(i == data.length-1)

{


System.out.print(data[i]);

System.out.println();

}

else

{

System.out.print(data[i]+",");

}

}

}

}