将整数数组按照堆排序的方式原地进行升序排列,请问在第一轮排序结
发布网友
发布时间:2022-04-29 14:55
我来回答
共1个回答
热心网友
时间:2022-05-22 02:43
就是排序算法,可以考虑的算法包括:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序、归并排序、桶排序等。提供一个冒泡排序吧,其他的建议自己实现:
<pre t="code" l="cpp">typedef int DT;
void swap(DT* a, DT* b){
if(a!=b){
*a=*a ^ *b;
*b=*a ^ *b;
*a=*a ^ *b;
}
}
void bubble(DT* from, int len, int(*cmp)(DT,DT)){
int i, j, flag;
for(i=0; i<len-1; i++){
flag=0;
for(j=0;j<len-1-i;j++)
if((from[j+1]<from[j])){
swap(from+j+1, from+j);
flag=1;
}
if(!flag) break;
}
}