首先是关于冒泡 初学选择和冒泡容易混为一谈 其实不然 冒泡是双双动态的过程 以下为例子
public class MaoPao{
public static void main (String args[]) {
int x[]={10,51,4,65,23,8};
// 设置临时变量,方便后面进行数值交换
int temp;
// 开始循环比较每一个值
for(int i=1;i<x.length;i++){
// 每一个值都与他后面的值相比,因为在他前面的都是比他大的,第一个值前面没有值就暂时认为他是最大的
for(int j=0;j<x.length-i;j++){
// 如果当前的值比它后面的值大就进行两个值的互换
if(x[j]<x[j+1]) {
// 把当前值放入临时变量中
temp=x[j];
// 当前值设置为后面的值
x[j]=x[j+1];
// 后面的值设置为临时变量中的值,这样就完成了两个值的互转
x[j+1]=temp;
}
}
// 重新打印排序后数组中的值
for(int i=0;i<x.length;i++)
System.out.print(x[i]+" ");
}
其次是较简单的选择排序法
选择排序法是由第一个数分别和第二个第三个等后面的数一一交换进行排序
public class XuanZe{
public static void main(String[] args){
int[] arr={2,345,111,1,34,5};
int temp=0;
int min=0;
for(int i=0;i<arr.length-1;i++){ //修改第1处,可选
min=i;
for(int j=i+1;j<arr.length;j++){
if(arr[min]>arr[j]) //修改第2处,必选
min=j;
}
if( min != i) { //修改第3处,可选
temp=arr[min];
arr[min]=arr[i];
arr[i]=temp;
}
}
System.out.println("排序后的数组为:");
for (int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");
}
}
}
总得来说