2016 - 2024

感恩一路有你

java冒泡排序的做法 冒泡排序算法外层循环为什么要减一?

浏览量:2297 时间:2023-05-24 10:04:21 作者:采采

冒泡排序算法外层循环为什么要减一?

最外层循环再控制轮数,下标又是从0正在,要是10个数,

这估计是从a【0】~a【9】,轮数那是8轮。后面最后一个数和前面那一个数比较完,也就就在位置上固定不动,不需再接受比较比较。所以减一。

例子:对n个数据进行排序。

冒泡排序法的思路是:将每一轮的首元素和这一轮的现全部元素并且都很,如果没有发现到后面的元素大于1首元素的话,就将小的元素与首元素进行交换,能保证每当比较好之后,首元素中都储存时比较好结果的最小值。

a【0】和a【1】~a【n-1】第二次进行都很,最小值放到a【0】中。乘以3

a【n-2】和a【n-1】都很,最小值放到a【n-2】中,剩下的的那个元素就放进了a【n-1】中,后面在没有元素了,也很都结束了。

而此:n个数,排序需要n-1轮,在输入的第i轮中,将首元素a【i】I和妖军的全部元素两两比较,将你每次也很结果的最小值放进a【i】中,这一轮比较好已经结束后,

a【i】中能保存这一轮的最小值。所以我泡声法排序需要精神冲击循环,外从循环压制比较好的论述,那从循环主要用于这里有这一轮的最小值,将这一轮的,将这一轮的最小值放在旁边这里有人的手元素中。

冒泡排序是不是稳定排序?

冒泡排序是把小的元素向后调或者把大的元素朝后调。也很是垂直相交的两个元素都很,交换也不可能发生在这两个元素之间。因此,如果两个元素相等,我想你是绝对不会再无聊地把他们俩交换下的;如果不是两个之和的元素是没有毗邻,那就即使按照前面的两两相互交换把两个东北边站了起来,这时候也不会相互交换,所以才完全相同元素的前后顺序并没有什么转变,所以冒泡排序算法是一种比较稳定排序算法。

冒泡排序一共多少循环?

冒泡排序要用单双层循环,要是有n个数,第一轮循环时,第二层循环执行n-1次;第二轮循环时,第二层循环负责执行n-2次;直到最后一轮,第二层循环不能执行1次。

所以冒泡排序算法的共计算次数是(1n-1)(n-1)/2n(n-1)/2

这里简单的写了下实现程序:

int[]arr{…………}//待排序数组,长度为n

inttemp0//主要用于同样的正式变量

for(inti0iltn-1i)

{

for(intj0jlti-1j)

{

if(arr[j1]ltarr[j])

{

temparr[j1]

arr[j1]arr[j]

arr[j]temp

}

}

}

元素 冒泡排序 排序

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。