排序算法的本质是两两比较及交换,n个元素最多比较n-1次就能确定任意一个元素的位置,直接决定了趟数。
你的问题很古怪,感觉没有问到点子上,建议你先看算法原理说明再看程序,不能先看程序。定义i、j两个变量,是为了对数列进行双重循环操作。j没有等于n-1-i,在代码中,j<n-1-i是循环条件,从数据结构优化上将,如果不优化,直接j<n-1就可以了,-i是因为优化,减少算法步骤。
这里length-1是因为数组的初始角标默认是0,并且 ,局部变量int i=0,如果有5个数,虽然他们的长度是5,但是角标是用0~4来表示的,所以,不减去1的话,就会编程0~5,就会多一个数。// length-1-i内循环里,在这里减去了i,因为,假设为5个数组,从大到小排序,我们在第一趟循环中,已经得到...
BubbleSort 的概念:依次比较相邻的两个数,将小数放在前面,大数放在后面,是为冒泡。BubbleSort用二重循环实现,时间复杂度为O(N^2)。最好情况是正序,外循环与内循环只比较一趟。最坏情况倒序,每一次比较都需要进行交换运算。
这是因为数组的序号是从0开始的,而不是从1,你想一想啊,当i=0,即数组的第一个元素的下标的值是0,这一点你要非常注意。在冒泡排序中,第一趟是从N个数组元素中进行两两比较大小,要比较(N-i-1)次,因为i,j是从0开始计数的,所以0,1,2...N-i-2,是不是就是(N-i-1)次呢,所以...
【题目】C#冒泡排序这几句是什么意思开始冒泡排序for(i=0;izue.Length.-1;i++)//这一步为什么要减1啊不减1也可以啊将最大的值传递到最后sfor(j=0;jue.Length -1-i;j++)//长度减1减是什么意思啊为什么要加-1和-j( +)temp ], = ++ 1= temp Console .Writeline ("排序后的输出为:")for(i=...
(4)对n个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数最多为( ).数据结构问题?那个是对的?A.n+1 B.n C.n-1 D.n(n-1)/2为什么,要详解! 相关知识点: 试题来源: 解析 是选D,比较次数最多时元素是逆序的,需要n-1趟排序第一趟,比较n-1次,确定第n个据元素第二趟,比较n-2次,确定...
建议第一个for语句也-1。因为最后一个数不需要比较,可以提高点效率。第二个for语句-1是因为后面有个...