java冒泡排序详细讲解

请问在此代码的详细讲解
2024-12-16 00:57:51
推荐回答(3个)
回答1:

首先无论是哪种语言,各种排序的算法思想都是一样的。
冒泡排序的算法思想是:1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3、针对所有的元素重复以上的步骤,除了最后一个。4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

代码分析:你的代码中外层第一次循环首先将数组中的各个元素与temp[1]比较,也就是数组中的第二个元素,内层循环中,每次循环都会判断,temp[1]与其他元素的大小。如果有元素的值比temp[1]大,就讲他们你的值交换,使用交换后的值继续依次与未经比较的值进行比较,直到与所有的元素比较完,这是第一趟排序。第一趟排序中,外层循环只执行了一次,内层循环每比较一次,循环一次,所以内层循环执行了temp.length次。第一趟排序找出了数组中最大的数,放在数组的最后一位置。。。依此类推,第二趟排序找出第二大的数放在倒数第二的位置。其后的每一次循环以此类推。

回答2:

就是 一组数字组成的数组,两两比较,大的数往后推,小的数向前

从头开始扫描待排序的元素,在扫描过程中依次对相邻元素进行比较,将关键字值大的元素后移。每经过一趟排序后,关键字值最大的元素将移到末尾,此时记下该元素的位置,下一趟排序只需要比较到此位置为止,直到所有元素都已有序排列。

回答3:

如果temp[i]比如有个数组{3,5}temp[0]=3,temp[1]=5,声明个变量x。
3<5所以执行if中的语句,x=temp[0]=3,temp[0]=temp[1]=5,temp[1]=x=3