冒泡排序,选择排序,插入排序

来源:互联网 发布:记录销售app软件 编辑:程序博客网 时间:2024/04/30 20:02

一 冒泡排序

冒泡排序:从第一个数开始依次与和后面一个数相比较,如果前面的数比后面的数大则将这两个数交换值 。每一轮的比较得出一个最大值在最后。

例子:

public class MaoPao{
public static void main(String[] args){
int[] a={1,4,7,2,1,8,4,5,0,9,1,4,23,10,88,77,43,-1};

//由于是前一个数和后一个数相比较 最后一个是 i+1所以要length-1;
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-1-i;j++){

//将前一个数与后面一个数相比较。大则交换。
if(a[j]>a[j+1]){
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
f(a);
}

//遍历数组
public static void f(int[] a){
for(int as:a){
System.out.print(as+"\t");
}
}
}





二 选择排序 

  

选择排序:从第一个数开始依次与后面的数相比较 打的放在后面 一轮以后的到一个最小值 放在比较的第一个位置 。





public class XuanZhe{
public static void main(String[] args){
int[] a={0,33,55,121,111,432,79,8,1,4,7,2,1,8,4,5,0,9,1,4,23,10,88,77,43,-1};

//外层循环 表示每一轮与后面数比较的数(a[j]);
for(int j=0;j<a.length-1;j++){

//表示比较的数依次与比较的数下标后面数相比较。
for(int i=0+j;i<a.length-1;i++){
if(a[j]>a[i+1]){
int t=a[j];
a[j]=a[i+1];
a[i+1]=t;
}
}
}f(a);

}

//遍历数组
public static void f(int[] a){
for(int as:a){
System.out.print(as+"\t");
}
}
}



三  插入排序

插入排序:将要插入的数与前面排序好的最后一个相比较 如果 前面一个数大则与前面那个数交换,继续与前面的数相比较直到前面相比较的数小 或者 到第一个数为止。


public class ChaRu{
public static void main(String[] args){
int[] a={0,5,3,1,11,-1,56,71,2,-7,100};

for(int i=0;i<a.length-1;i++){

//内循环控制每一次与前面的数比较如果前面数较大则交换 继续与前面的数比较。
for(int j=i+1;j>=1;j--){ 
if(a[j-1]>a[j]){
int t=a[j]; 
a[j]=a[j-1];
a[j-1]=t;
}else{
break;
}

}
}
   f(a);


}

//遍历数组
public static void f(int[] a){
for(int as:a){
System.out.print(as+"\t");
}
}
}


1 0
原创粉丝点击