排序算法---冒泡排序
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)一次冒两个元素(双向冒泡)
冒泡排序排序过程:
冒泡排序代码实现如下:
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)一次冒两个元素(双向冒泡)
相关文章推荐
- 排序算法 冒泡排序
- PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
- 排序算法入门之冒泡排序优化
- 各种排序算法总结----基数排序、归并排序、插入排序、冒泡排序、选择排序、快速排序、堆排序、希尔排序
- 小学生图解排序算法:①冒泡排序
- 【排序算法】冒泡排序原理及Java实现
- 排序算法——冒泡排序
- 排序算法:冒泡排序
- 排序算法之冒泡排序
- 算法系列(三)排序算法上篇--冒泡排序插入排序和选择排序
- 记录自已学习之排序算法(冒泡排序)
- 排序算法-冒泡排序
- 排序算法--冒泡排序(java)
- C语言常用的几种排序算法代码(选择排序,冒泡排序,插入排序,快速排序)
- 排序算法之冒泡排序
- 基本排序算法——冒泡排序java实现
- 排序算法之冒泡排序
- 排序算法-冒泡排序 java
- 算法_基本排序算法之冒泡排序,选择排序,插入排序和希尔排序
- 排序算法——冒泡排序(Bubble Sort)