冒泡排序
谁会冒泡排序啊?求教!说简单点,最好带几个列子。谢谢!
[解决办法]
冒泡排序的思想:
假设有N个数据需要排序,则从第0个数开始,依次比较第0和第1个数据,如果第0个大于第1个则两者交换,否则什么动作都不做,继续比较第1个第2个…,这样依次类推,直至所有数据都“冒泡”到数据顶上。
代码:
算法代码:
public class Bubble
{
/**
* 假设有n个数据需要排序,则从第0个数开始,
* 依次比较第0和第1个数据,如果第0个大于第1个则两者交换,
* 否则什么动作都不做,继续比较第1个第2个…,这样依次类推,
* 直至所有数据都"冒泡"到数据顶上。
* @param a
* @return
*/
public int[] bubbleSort(int[] a)
{
int in;
int out;
for(out = a.length - 1; out > 1; out--)
{
for(in = 0; in < out; in++)
{
if(a[in] > a[in + 1])
{
swap(a, in, in+1);
}
}
}
return a;
}
public int[] swap(int[] a,int n,int m)
{
int s = a[n];
a[n] = a[m];
a[m] = s;
return a;
}
}
测试代码
public class BubbleTest
{
public static void main(String[] args)
{
int[] a = {10,1,9,4,30,3,7,5,2,6};
Bubble bubble = new Bubble();
bubble.bubbleSort(a);
for(int i = 0; i < a.length; i++)
{
System.out.println(i + 1 + ":" + a[i]);
}
}
}
第一次回复,献丑了,希望可以帮到LZ
[解决办法]
public class bubbleSort {
public bubbleSort() {
int a[] = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 5, 4, 62,
99, 98, 54, 56, 17, 18, 23, 34, 15, 35, 25, 53, 51 };
int temp = 0;
for ( int i = 0; i < a. length - 1; i++) {
for ( int j = 0; j < a. length - 1 - i; j++) {
if (a[j] > a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for ( int i = 0; i < a. length; i++)
System. out.println(a[i]);
}
}