[align=center]冒泡排序算法(JAVA实现)[/align]
思想:
假设有N个数据需要排序,则从下标为0开始,依次比较第 array[0]和第 array[i]的数据,如果第 array[0]大于 array[i]则两者进行交换,否则什么动作也不做,继续比较第array[1]和第array[2]..........依此类推,直到所有数据都“冒泡”到数据顶上。
package org.iljava.datastructures;
/**
*
* @author Xiaolong_Long
*
*/
public class BubbleSort {
/**
* @param args
*/
public static void main(String[] args) {
int values [] ={13,8,67,34,2,5,6};
System.out.println("未执行冒泡操作前的结果依次输出为:");
for (int i :values) {
System.out.print(i+"\t");
}
bubbleSort(values);
System.out.println();
System.out.println("执行冒泡操作后的结果依次输出为:");
for (int i :values) {
System.out.print(i+"\t");
}
}
static void bubbleSort(int [] values){
int length = values.length;//获得数组长度
int temp;
int in,out;
for (out = length-1; out >0; out--) {
for (in= 0; in <out; in++) {
//如果前者大于后者则交换
if(values[in]>values[in+1]){
temp = values[in];
values[in]= values[in+1];
values[in+1] = temp;
}
}
}
}
}
[color=red][b]结果输出为:
未执行冒泡操作前的结果依次输出为:
13 8 67 34 2 5 6
执行冒泡操作后的结果依次输出为:
2 5 6 8 13 34 67[/b][/color]
思想:
假设有N个数据需要排序,则从下标为0开始,依次比较第 array[0]和第 array[i]的数据,如果第 array[0]大于 array[i]则两者进行交换,否则什么动作也不做,继续比较第array[1]和第array[2]..........依此类推,直到所有数据都“冒泡”到数据顶上。
package org.iljava.datastructures;
/**
*
* @author Xiaolong_Long
*
*/
public class BubbleSort {
/**
* @param args
*/
public static void main(String[] args) {
int values [] ={13,8,67,34,2,5,6};
System.out.println("未执行冒泡操作前的结果依次输出为:");
for (int i :values) {
System.out.print(i+"\t");
}
bubbleSort(values);
System.out.println();
System.out.println("执行冒泡操作后的结果依次输出为:");
for (int i :values) {
System.out.print(i+"\t");
}
}
static void bubbleSort(int [] values){
int length = values.length;//获得数组长度
int temp;
int in,out;
for (out = length-1; out >0; out--) {
for (in= 0; in <out; in++) {
//如果前者大于后者则交换
if(values[in]>values[in+1]){
temp = values[in];
values[in]= values[in+1];
values[in+1] = temp;
}
}
}
}
}
[color=red][b]结果输出为:
未执行冒泡操作前的结果依次输出为:
13 8 67 34 2 5 6
执行冒泡操作后的结果依次输出为:
2 5 6 8 13 34 67[/b][/color]