免费自动排课软件:快请帮忙啊!!!编写程序 折半插入排序

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/11 02:55:48
快请帮忙啊!!
我急着要这个数据结构的编程,请大家帮帮忙啊!!
这是要交的课程设计,不回那么简单的,
我要一个完整的C语言版的编程

template <class Record,class Compare>
void BinaryInsertSorter<Record,Compare>::Sort(Record Array[], int n)
{
Record TempRecord; //用来保存当前待插入纪录的临时变量
int left,right,middle; //记录已排好序序列的左、右、中位置
for (int i=1;i<n;i++) //插入第i个记录
{
TempRecord = Array[i]; //将当前待插入记录保存在临时变量中
left = 0; right = i-1; //记录已排好序序列的左右位置
while(left <= right) //开始查找待插入记录的正确位置
{
middle = (left+right)/2; //记录中间位置
//如果待插入记录比中间记录小,就在左一半中查找,否则,在右一半中查找
if (Compare::lt(TempRecord, Array[middle]))
right = middle-1;
else left = middle+1;
}
//将前面所有大于当前待插入记录的记录后移
for(int j = i-1; j >= left; j --)
Array[j+1] = Array[j];
Array[left] = TempRecord; //将待插入记录回填到正确位置
}
}

dim a(3) as integer
a(1)=text1.text
a(2)=text2.text
a(3)=text3.text
for i=1 to 2
for j=1 to 3-i
if a(j)>a(j+1) then
t=a(j)
a(j)=a(j+1)
a(j+1)=t
end if
next j
next i
text1.text=a(1)
text2.text=a(2)
text3.text=a(3)