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]+",");
}
}
}
}
转载于:https://blog.51cto.com/9682802/1846162