首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于QuickSort解决思路

2012-03-24 
关于QuickSort请看下面的一段代码:template classTvoidQuickSort(Tdata[],intn){inti,maxif(n2)return

关于QuickSort
请看下面的一段代码:

template <class   T>
void   QuickSort(   T   data[],   int   n   ){
int   i,   max;
if   (   n   <   2   )   return;
//find   the   largest   element   and   put   it   at   the   end   of   data[]
for   (   int   i   =   1,   max   =   0;   i   <   n;   i++   ){//??WHY
if   (   data[max]   <   data[i]   )   max   =   i;
}
exch   (   data[n-1],   data[max]   );
QuickSort(   data,   0,   n-2   );
}

我的问题是:
为什么要用这一段,效率上有很大作用吗?
for   (   int   i   =   1,   max   =   0;   i   <   n;   i++   ){//??WHY
if   (   data[max]   <   data[i]   )   max   =   i;
}
exch   (   data[n-1],   data[max]   );

[解决办法]
这段用的不是快速排序算法. 应该是沉底/冒泡算法
[解决办法]
交换排序。

有什么作用?你把那两行删掉就是了。
[解决办法]
删掉以后看输出结果。如果你电脑上装有编译器的话。
[解决办法]
分明是bubblesort,为什么还要来个递归呢?画蛇添足。。。
[解决办法]
看来大家对几种基本排序算法不是很熟……

热点排行