早教吧 育儿知识 作业答案 考试题库 百科 知识分享

VB来达到交换位置解冒泡法将6,3,7,8,2,1按从小到大排列,需要进行数据比较的次数是?1,需要进行n-1趟排序,6-1=5趟排序,2,比较次数=1/2(n^2-n),推导例如n=6,你一趟排序要进行5比较,第二趟

题目详情
VB来达到交换位置解
冒泡法将6, 3, 7, 8, 2, 1按从小到大排列,需要进行数据比较的次数是?
1,需要进行n-1趟排序,6-1=5趟排序,
2,比较次数=1/2(n^2-n),
推导
例如n=6,你一趟排序要进行5比较,第二趟需要4次,类推,(n-1,n-2,n-3....1)
比较次数就各数字相加,所以1/2(n^2-n)=5+4+3+2+1=15次
3,移动次数=3/2(n^2-n),
推导
将第二问乘以3,所以移动次数=3/2(n^2-n)=3*15=45次
需要进行n-1趟排序。每趟排序要进行n-i次的比较,且每次比较都必须移动记录三次来达到交换记录位置
问题:
每次比较都必须移动记录三次来达到交换记录位置,这个三次如何得出来的,不管多少个数字排序都移动三次,
不管8个数字排序,还是10个数字排序都移动三次.
解释一下不懂
▼优质解答
答案和解析
for i=1 to 5
for j=1 to 6-i
if a(j)>a(j+1) then
t=a(j) '这里是不是三次交换?那不就要移动三次吗?朋友。
a(j)=a(j+1)
a(j+1)=t
end if
next j,i
看了 VB来达到交换位置解冒泡法将...的网友还看了以下: