c java 选择_使用C语言和Java分别实现冒泡排序和选择排序

经典排序算法——冒泡和选择排序法

Java实现冒泡排序

基本思想是,对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会将最小或最大的元素放到顶端,最终达到完全有序,首先看个动图:

a8cc8491cb5b36be957083cc31e86de5.gif

我们要清楚一点,冒泡排序是相邻元素的两两比较,再看下图是否会清晰些:

2d27b6e16d1ebec7605a3c6240f077af.png

输入的数据为:10 30 40 33 5 78 11 100 23 66

第一次排序,从第一个数10依次比较,若10比后者小,则进行交换,当比较到5时,10比5大,所以10就停在第四个位置,再用5去比较,后面的数都比5大,所以5就排到最后了

同理,第二次排序,仍然从第一个数30开始比较,分别跟40,33交换了顺序,比到10的时候,30比10大,所以30就停在了第三个位置,再用10去比较,10只比5大,所以排在了倒数第二个位置

依次10次比较后,得到最终排序结果

Java实现冒泡排序代码如下,代码实现过程,用一个临时变量来做中间值,从而实现交换:

1 packagemaopaopaixu;2

3 import java.util.Scanner; //使用到了scanner函数,所以需要导包

4

5 public classmaopao {6

7 public static voidmain(String[] args) {8 int i,j,k,temp; //声明变量

9 int a[]=new int[10]; //定义一个数组,长度为10

10 Scanner sc=new Scanner(System.in); //创建一个输入对象

11 System.out.println("请输入十个正整数:"); //输出

12 for(i=0;i

13 a[i]=sc.nextInt();14 }15 for(j=0;j

16 for(k=0;k

17 if(a[k]

18 temp=a[k+1]; //条件为真,进行交换位置,采用temp临时变量

19 a[k+1]=a[k];20 a[k]=temp;21 }22 }23 }24 for(i=0;i

25 System.out.print(a[i]+"\t");26 }27

28 }29

30 }

加上一些代码可以看的更清晰,如下所示:

1 packagemaopaopaixu;2

3 import java.util.Scanner; //使用到了scanner函数,所以需要导包

4

5 public classmaopao {6

7 public static voidmain(String[] args) {8 int i,j,k,temp; //声明变量

9 int a[]=new int[10]; //定义一个数组,长度为10

10 Scanner sc=new Scanner(System.in); //创建一个输入对象

11 System.out.println("请输入十个正整数:"); //输出

12 for(i=0;i

13 a[i]=sc.nextInt();14 }15 for(j=0;j

16 for(k=0;k

17 if(a[k]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值