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