使用冒泡法排序数组

使用冒泡法排序数组:

如果一个数组中的元素是杂乱无序的,而我们又希望将数组中的元素变为有序的,比如变为升序排列的,这样我们需要一种算法来实现数组元素的排序,其中冒泡法就是一种常用的排序方法。

1.冒泡排序法的原理:

      升序排列步骤如下:

1)对于一个有n个元素的数组,首先用数组中的第一个元素和后面的每个元素进行比较,如果第一个元素比后面的元素大,就交换这两个元素的位置,直到比较到最后一个元素为止,这样经过第一轮的比较,可以保证第一个元素是最小的;

2)用数组中的第二个元素和后面的每个元素进行比较,如果第二个元素比后面的元素大,就交换这两个元素的位置,直到比较到最后一个元素为止,这样经过第二轮的比较,可以保证第二个元素比第一个元素以外的其他元素都小;

3)重复(1)、(2)两个步骤,直到比较到第n-1轮,比较出第n-1个元素和第n个元素的大小,使第n-1个元素小于第n个元素,这样就实现了数组的升序排列。

升序排列数组的冒泡法的代码:

int[] num={10,5,20,18,30,12,25};

// 使用冒泡法排序数组

for (int i=0;i<num.length-1;i++){

        for (int j=i+1;j<num.length;j++){

                if (num[i]>num[j]){

                        int x=num[i];

                        num[i]=num[j];

                        num[j]=x;

                }

        }

}

升序排列的结果:5  10  12  18  20  25  30

      降序排列步骤如下:

1)对于一个有n个元素的数组,首先用数组中的第一个元素和后面的每个元素进行比较,如果第一个元素比后面的元素小,就交换这两个元素的位置,直到比较到最后一个元素为止,这样经过第一轮的比较,可以保证第一个元素是最大的;

2)用数组中的第二个元素和后面的每个元素进行比较,如果第二个元素比后面的元素小,就交换这两个元素的位置,直到比较到最后一个元素为止,这样经过第二轮的比较,可以保证第二个元素比第一个元素以外的其他元素都大;

3)重复(1)、(2)两个步骤,直到比较到第n-1轮,比较出第n-1个元素和第n个元素的大小,使第n-1个元素大于第n个元素,这样就实现了数组的降序排列。

降序排列数组的冒泡法的代码:

int[] num={10,5,20,18,30,12,25};

// 使用冒泡法排序数组

for (int i=0;i<num.length-1;i++){

        for (int j=i+1;j<num.length;j++){

                if (num[i]<num[j]){

                        int x=num[i];

                        num[i]=num[j];

                        num[j]=x;

                }

        }

}





posted @ 2012-05-26 08:32  XE2011  阅读(662)  评论(0编辑  收藏  举报