1 / 2
文档名称:

冒泡排序原理和JAVA实现.doc

格式:doc   大小:48KB   页数:2页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

冒泡排序原理和JAVA实现.doc

上传人:taotao0a 2017/8/4 文件大小:48 KB

下载得到文件列表

冒泡排序原理和JAVA实现.doc

相关文档

文档介绍

文档介绍:冒泡排序原理和JAVA实现
分类: Algorithm2010-12-17 16:23 1658人阅读 评论(1) 收藏 举报
javastringclassnull
冒泡排序是一种比较排序,下面我实现一个从小到大的冒泡排序:
先定义两个变量:
    待排序数组:int[] source;
    数组长度  length = ;
 
原理如下:
1、开始:有length-1次循环,每次参与循环的是未排序的数。第一次参与循环的是整个数组,因为假设整个数组是无序的。
    每次循环需要设置一个标志位: boolean flag = false;表示循环过程中是否产生了交换。
2、过程:循环过程中, 相邻的两个元素进行比较,如果source[j] > source[j+1],则交换两者顺序,同时标志位flag = true;表示产生了交换。每一次循环结束后,最大数沉到未排序部分的尾部,每次循环找出一个最大数。
3、结束:每次循环结束后,如果标志位flag未改变的话,证明未排序的部分中没有source[j] > source[j+1],即未排序部分已经有序,这时,跳出循环,排序结束。
   或者length-1次循环结束后,数组有序。
 
    为什么是length-1次而不是length循环,因为每次循环找出一个最大数,沉下去,length-1次循环后,只剩下一个元素,不需要进行任何比较,它就是最小的。
 
JAVA代码如下:
 
[java] view plaincopy
package sort;  
import ;  
public class bubbleSort {  
    public void sort(int[] source){  
        int length = ;  
        boolean flag = false;  
        for(int i=1;i<=length-1;++i){  
            flag = false;  
            for(int j=0;j<length-i;++j){  
                if(source[j] > source[j+1]){  
                    int temp = source[j];  
                    source[j] = source[j+1];  
                    source[j+1] = temp;  
                    flag = true;  
                }  
            }  
            if(flag == false)  
                break;  
        }  
&#