首页 > 试题广场 >

假设一个 list初始化为{2,9,5,4,8,1}。 ..

[单选题]
假设一个 list初始化为{2,9,5,4,8,1}。 在第一轮冒泡排序后,list变成了()?
  • 2, 9, 5, 4, 8, 1
  • 2, 9, 5, 4, 1, 8
  • 2, 5, 9, 4, 8, 1
  • 2, 5, 4, 8, 1, 9
我觉得这道题选A啊,如果题目改为“第一轮冒泡排序”的话才选D。第一次排序难道不是2和9进行比较吗?2比9小,所以位置不变化。
发表于 2019-10-15 13:11:21 回复(16)
冒泡排序:将最大值放到末尾,一直缩小范围到第一位
发表于 2019-08-21 09:36:07 回复(0)
冒泡排序依次比较相邻的两个数,将小数放在前面,大数放在后面。
        即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。
        在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。
发表于 2021-06-03 06:52:55 回复(0)
第一轮比较:
{2,9,5,4 ,8,1} 不交换
{2,5,9,4 ,8,1} 交换
{2,5,4,9 ,8,1} 交换
{2,5,4,8 ,9,1} 交换
{2,5,4,8 ,1,9} 交换
第二轮比较:
{2,5,4,8 ,1,9}不交换
{2,4,5,8 ,1,9}交换
{2,4,5,8 ,1,9}交换
{2,4,5,1 ,8,9}交换
{2,4,5,1 ,8,9}交换
第三轮比较:
{2,4,5,1 ,8,9}不交换
{2,4,5,1 ,8,9}不交换
{2,4,1,5 ,8,9}交换
{2,4,1,5 ,8,9}不交换
{2,4,1,5 ,8,9}不交换
第四轮比较:
{2,4,1,5 ,8,9}不交换
{2,1,4,5 ,8,9}交换
{2,1,4,5 ,8,9}不交换
{2,1,4,5 ,8,9}不交换
{2,1,4,5 ,8,9}不交换
第五轮比较:
{1,2,4,5 ,8,9}交换
{1,2,4,5 ,8,9}不交换
{1,2,4,5 ,8,9}不交换
{1,2,4,5 ,8,9}不交换
{1,2,4,5 ,8,9}不交换

总共进行N-1轮排序,每i趟的排序次数为(N-i)次。 那么分析可得,第一次冒泡排序后的位置顺序是{2,9,5,4,8,1},第一轮冒泡排序后的位置顺序是{2,5,4,8 ,1,9}
发表于 2021-02-23 07:55:14 回复(0)
冒泡排序是稳定排序
for(int i = 0; i < arr.length; i++) {
        for(int j = 0; j < arr.length - 1 - i; j++) {
            if (arr[j] > arr[j+1]) {
                swap(arr[j], arr[j+1]);
            }
        }
    }//大数向下沉
编辑于 2019-10-10 11:42:57 回复(2)
冒泡排序,顾名思义,是像水中的泡泡,从底部浮出水面,如题目中,应该是依次将大数往上移动,第一次将,最大的数,移动到最后一个位置。即,将9移动到最后。
选D。
第一次,2 5 4 8 1 9
第二次,2 4 5 1 8 9
第三次,2 4 1 5 8 9
第四次,2 1 4 5 8 9
第五次,1 2 4 5 8 9
编辑于 2021-12-10 21:31:19 回复(0)
发表于 2021-04-12 11:28:03 回复(0)
冒泡排序是相邻之间两两交换,第一次排序后,最大值在末尾,中间两两交换结果为:2 5 4 8 1 9
发表于 2020-03-17 10:43:21 回复(0)
其实就是1-9,a-z,两两比较,较大的往后面排序
发表于 2019-11-19 00:33:00 回复(0)
一轮排序之后,最大值在最后面,选D
编辑于 2019-08-21 12:31:29 回复(4)
冒泡排序可以从前到后也可以从后到前
发表于 2020-01-12 20:40:41 回复(0)

明明是第一次不是第一轮

发表于 2019-10-24 08:09:14 回复(0)
两两比较,小的放前面,大的放后面
发表于 2021-10-27 14:44:57 回复(0)
是从小到大呢还是从大到小呢?
发表于 2021-10-18 11:37:02 回复(0)
第一次,不是第一轮,懂了
发表于 2021-09-26 08:53:37 回复(0)
冒泡排序:将最大值放到末尾,一直缩小范围到第一位
发表于 2021-09-08 14:21:41 回复(0)
2位置不变,9往后一路大替换位置到最后
发表于 2021-08-12 17:52:50 回复(0)
冒泡排序(Bubble Sort):重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端,大的元素沉底。
发表于 2021-04-14 09:32:03 回复(0)
这道题有歧义
发表于 2021-03-21 17:30:21 回复(0)
冒泡排序是依次将最大值放在最后面
发表于 2021-03-17 23:40:51 回复(0)