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

一 冒泡排序

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

例子:

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值