读书人

关于QuickSort解决思路

发布时间: 2012-03-24 14:00:46 作者: rapoo

关于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,为什么还要来个递归呢?画蛇添足。。。
[解决办法]
看来大家对几种基本排序算法不是很熟……

读书人网 >C++

热点推荐