请教vb比较排序法问题。谢谢。
比如说有一个数组a(5),里面有6、5、3、1、8等五个元素,要用比较排序法进行升序排列,按比较排序法的描述,第一轮比较是将6与其后的4个元素一一比较,如果小于6的则交换...
比如说有一个数组a(5),里面有6、5、3、1、8等五个元素,要用比较排序法进行升序排列,按比较排序法的描述,第一轮比较是将6与其后的4个元素一一比较,如果小于6的则交换位置,那么结果应该是5、6、3、1、8;我不明白的是:比较排序法中说,第一轮的比较结果是:第一个元素是最小的;5怎么会是最小的?我不那么会表达,见谅。
展开
1个回答
展开全部
他的意思是,在第一轮比较后,通过不断比较和交换位置,最小的那个元素已经被移动到第一位了,也就是变成了第一个元素
第一轮比较是将6与其后的4个元素一一比较,这个说法不对,是将第一个元素与其后的4个元素比较,在比较的过程中第一个元素可能会发生变化(发生了位置交换),所以
6,5,3,1,8
排序的第一轮过程如下
比较6和5,6>5,交换位置,数组变为
5,6,3,1,8
比较5和3,5>3,交换位置,数组变为
3,6,5,1,8
比较3和1,3>1,交换位置,数组变为
1,6,5,3,8
比较1和8,1<8,位置不变
第一轮比较结束
第一轮比较是将6与其后的4个元素一一比较,这个说法不对,是将第一个元素与其后的4个元素比较,在比较的过程中第一个元素可能会发生变化(发生了位置交换),所以
6,5,3,1,8
排序的第一轮过程如下
比较6和5,6>5,交换位置,数组变为
5,6,3,1,8
比较5和3,5>3,交换位置,数组变为
3,6,5,1,8
比较3和1,3>1,交换位置,数组变为
1,6,5,3,8
比较1和8,1<8,位置不变
第一轮比较结束
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询