您的位置:首页 > 其它

排序算法---冒泡排序

2017-04-15 16:58 190 查看
       冒泡排序:重复地走访要排序的数列,一次比较两个数据元素,如果顺序不对则进行交换,并且一直重复这样的走访操作,直到没有要交换的数据元素为止。

     冒泡排序排序过程:

   




        冒泡排序代码实现如下:

package com.threeTop.www;

/**
* 冒泡排序的实现
* @author wjgs
*
*/
public class BubbleSort {

private int []array;

//初始化操作
public BubbleSort(int []array)
{
this.array=array;
}

/**
* 从小到大排序
*
*/
public void sort1()
{

int length=array.length;
if(length>0)
{
for(int i=1;i<length;i++)
for(int j=0;j<length-1;j++)
{
if(array[j]>array[j+1])
{
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}

}
}

/**
* 从大到小的排序
*
*/
public void sort2()
{
int length=array.length;
if(length>0)
{
for(int i=length-1;i>0;i--)
for(int j=length-1;j>length-1-i;j--)
{
if(array[j]>array[j-1])
{
int temp=array[j];
array[j]=array[j-1];
array[j-1]=temp;
}
}
}

}

/**
* 打印出所有的元素
*
*/
public void print()
{
for(int i=0;i<array.length;i++)
{
System.out.print(array[i]+" ");
}
}
public static void main(String []args)
{
int []array={5,9,1,9,5,3,7,6,1};
BubbleSort bubblesort=new BubbleSort(array);
System.out.println("从大到小输出:");
bubblesort.sort2();
bubblesort.print();

System.out.println();
System.out.println("从小到大输出:");
bubblesort.sort1();
bubblesort.print();
}

}



冒泡排序的改进:

        (1)增加标志位

        (2)一次冒两个元素(双向冒泡)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  冒泡排序