目的:按要求从大到小或从小到大排序。
基本思路:对尚未排序的各元素从头到尾依次比较相邻的两个元素是否逆序(与欲排顺序相反),若逆序就交换这两元素,经过第一轮比较排序后便可把最大(或最小)的元素排好,然后再用同样的方法把剩下的元素逐个进行比较,就得到了你所要的顺序。可以看出如果有 n 个元素,那么一共要进行 n-1 轮比较,第 i 轮要进行 j=n-i 次比较。(如:有5个元素,则要进行5-1轮比较。第3轮则要进行5-3次比较)
package org.zhf.demo;
public class ClassMaoPao {
//冒泡排序法
public static void main(String[] args) {
int[] pop={6,8,7,1,2,3,4,5};
int t=0;
for(int i=0;i<pop.length;i++){
for(int j=0;j<pop.length-i-1;j++){
if(pop[j]>pop[j+1]){
t=pop[j+1];
pop[j+1]=pop[j];
pop[j]=t;
}
}
}
for(int i=0;i<pop.length;i++){
System.out.print(pop[i]+" ");
}
}
}
基本思路:对尚未排序的各元素从头到尾依次比较相邻的两个元素是否逆序(与欲排顺序相反),若逆序就交换这两元素,经过第一轮比较排序后便可把最大(或最小)的元素排好,然后再用同样的方法把剩下的元素逐个进行比较,就得到了你所要的顺序。可以看出如果有 n 个元素,那么一共要进行 n-1 轮比较,第 i 轮要进行 j=n-i 次比较。(如:有5个元素,则要进行5-1轮比较。第3轮则要进行5-3次比较)
package org.zhf.demo;
public class ClassMaoPao {
//冒泡排序法
public static void main(String[] args) {
int[] pop={6,8,7,1,2,3,4,5};
int t=0;
for(int i=0;i<pop.length;i++){
for(int j=0;j<pop.length-i-1;j++){
if(pop[j]>pop[j+1]){
t=pop[j+1];
pop[j+1]=pop[j];
pop[j]=t;
}
}
}
for(int i=0;i<pop.length;i++){
System.out.print(pop[i]+" ");
}
}
}