??????? 在要排序的一組數(shù)中耳幢,對(duì)當(dāng)前還未排好序的范圍內(nèi)的全部數(shù)迂苛,自上而下對(duì)相鄰的兩個(gè)數(shù)依次進(jìn)行比較和調(diào)整,讓較大的數(shù)往下沉弃揽,較小的往上冒脯爪。
????? ?即:每當(dāng)兩相鄰的數(shù)比較后發(fā)現(xiàn)它們的排序與排序要求相反時(shí),就將它們互換矿微。
?????????? ? ?第一次比較排序的結(jié)果:會(huì)把其中最大的數(shù)據(jù)排到最大的索引處
??????????? ?第二次比較排序后的結(jié)果:因?yàn)榈谝淮我呀?jīng)把最大的一個(gè)數(shù)據(jù)放到了最大的索引的地方痕慢,所以這次要進(jìn)行比較的數(shù)據(jù)比數(shù)組里面的元素的數(shù)據(jù)個(gè)數(shù)-1個(gè),而第二大的數(shù)據(jù)也會(huì)排到第二大的索引處
????????? 第三次比較排序的結(jié)果:跟第二次差不多涌矢,只是這次要進(jìn)行比較的數(shù)據(jù)比數(shù)組里面的元素的數(shù)據(jù)個(gè)數(shù)還少了2個(gè)掖举,
????????? ?? 第四次:少3個(gè)...
??? 綜上所述,要使數(shù)組里面的數(shù)據(jù)按照從小到大排序娜庇,總的比較的次數(shù)會(huì)比數(shù)組的長(zhǎng)度-1次塔次,而隨著比較的次數(shù)的增加方篮,每次要進(jìn)行比較的數(shù)據(jù)依次減少。
public class Demo {
?????? public static void main(String[] args) {
???????? ? int number[]={49,38,65,97,76,13,27,14,10};
?????????? ? for(int i=0;i<number.length-1-i; j++) {
???????????? ??if (number[j] >number[j+1]) {
???????????????????? int tmp = number[j];
??????????????????? number[j] = number[j+1];
???????????????????? number[j + 1] = tmp;
???????????????? }
???????? }
?????? for (int j = 0; j < number.length; j++) {
?????????????? System.out.print(number[j] +"\t");
??? ?? }
??????????? System.out.println("排序"+(i+1)+"次后的結(jié)果");
???????? }
??? }
?}