冒泡排序是比较经典的排序算法.代码如下:
for(int i=1;iarr.length;i◆◆){
for(int j=1;jarr.length-i;j◆◆){
//交换位置
} ? ?
拓展资料:
原理:比较两个相邻的元素,将值大的元素交换至右端.
第一趟比较完成后,最后一个数一定是数组中最大的一个数,所以第二趟比较的时候最后一个数不参与比较;
第二趟比较完成后,倒数第二个数也一定是数组中第二大的数,所以第三趟比较的时候最后两个数不参与比较;
依次类推,每一趟比较次数-1;
......
参考资料:冒泡排序原理
冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端.
冒泡排序算法的运作如下:
比较相邻的元素.如果第一个比第二个大,就交换他们两个.
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数.
针对所有的元素重复以上的步骤,除了最后一个.
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较.
public?class?BubbleSort{?
public?static?void?main(String[]?args){?
for?(int?i?=?0;?i?score.length?-1;?i◆◆){?//最多做n-1趟排序?
for(int?j?=?0?;j?score.length?-?i?-?1;?j◆◆){?//对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的)?
if(score[j]?score[j?◆?1]){?//把小的值交换到后面?
int?temp?=?score[j];?
score[j]?=?score[j?◆?1];?
score[j?◆?1]?=?temp;?
}?
}???
System.out.print("第"?◆?(i?◆?1)?◆?"次排序结果:");?
for(int?a?=?0;?a?score.length;?a◆◆){?
System.out.print(score[a]?◆?"\t");?
System.out.println("");?
System.out.print("最终排序结果:");?
}
冒泡排序的原理:
从第一个元素开始,将相邻的两个元素依次进行比较,直到最后两个元素完成比较.如果前一个元素比后一个元素大,则交换它们的位置.整个过程完成后最后一个元素就是最大值,完成第一轮比较,后边通过for循环依次完成后续比较.
运行代码如下:
package day01;
public class 冒泡 {
public static void main(String[] args) {
System.out.println("排序之前的元素顺序:");
for(int i=0;iarr.length;i◆◆)
{
System.out.print(arr[i]◆" ");
int t;
for(int j=0;jarr.length-1;j◆◆)
for(int x=0;xarr.length-1;x◆◆)
if(arr[x]arr[x◆1])
t=arr[x];
arr[x]=arr[x◆1];
arr[x◆1]=t;
System.out.println();
System.out.println("排序之后的元素顺序:");
for(int k=0;karr.length;k◆◆)
System.out.print(arr[k]◆" ");
运行结果截图:
扩展资料:
(1)冒泡排序每一轮把一个最大的元素放在数组的最后