本文正在参加「Java主题月 – Java 刷题打卡」,详情查看 活动链接
1、算法思想
对要排序的数据,从上到下依次比较两个相邻的数并加以调整,将最大的数向下移动,较小的数向上冒起。即:每一趟依次比较相邻的两个数据元素,将较小的数放在左边,循环进行同样的操作,直到全部待排序的数据元素排完。
2、实例分析
例如:我们要将身高不等的十个人站在一排,要求他们按照身高由低到高排队,设将10个人编号为0—9 ,相邻的两个人依次比较,如果左边的比右边的人高,则交换两个人的位置,否则不交换,直到最后两个人,即此时完成了一趟排序。一趟排序后,最高的人已经在最右边了。
一趟排序后的结果:(将最高者一趟排序后移动到最后位置)
如此都多趟的排序,最终就完成了整个的排序。
3、算法分析
(有小到大排序)
-
每一趟过程中,就是依次比较两个相邻的数,若a[i]>a[i+1],则交换两数,否则不换;
-
每一趟就是一重循环,而由于要经过多趟过程,即外面还有一重循环,所以就存在双重循环。
4、算法代码:(Java版)
/**
* 冒泡排序 算法
* @author xcbeyond
*
*/
public class BubbleSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[] ={13,15,37,89,60,39,12,109,56,72} ;
int i = 0;
int j = 0;
for(i=0;i<10;i++)
System.out.print(a[i]+" ");
System.out.println();
for(i=0;i<a.length;i++)
for(j=0;j<a.length-i-1;j++)
{
if(a[j]>a[j+1])
{
int temp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
for(i=0;i<10;i++)
System.out.print(a[i]+" ");
}
}
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END