quiksort.h
来自「C++参考书」· C头文件 代码 · 共 48 行
H
48 行
#ifndef QUIKSORT_H
#define QUIKSORT_H
template<typename T>
inline void swap( T &t1, T &t2 )
{
T hold = t2 ;
t2 = t1 ;
t1 = hold ;
}
template<typename T>
void quickSort( T *array, int hi, int lo = 0 )
{
while ( hi > lo ) {
int i = lo ;
int j = hi ;
do {
while ( array[i] < array[lo] && i < j )
i++ ;
while ( array[--j] > array[lo] ) ;
if ( i < j )
swap( array[j], array[i] ) ;
} while ( i < j ) ;
swap( array[lo], array[j] ) ;
if ( j - lo > hi - ( j + 1 ) ) {
quickSort( array, j - 1, lo ) ;
lo = j + 1 ;
}
else {
quickSort( array, hi, j + 1 ) ;
hi = j - 1 ;
}
}
}
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?