写点什么

排序算法之冒泡排序

用户头像
xcbeyond
关注
发布于: 54 分钟前

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]+" "); }
}
复制代码


发布于: 54 分钟前阅读数: 2
用户头像

xcbeyond

关注

不为别的,只为技术沉淀、分享。 2019.06.20 加入

公众号:程序猿技术大咖,专注于技术输出、分享。

评论

发布
暂无评论
排序算法之冒泡排序