Go to the source code of this file.
Defines | |
#define | __J2K__LZH__HuffStatTmp_CPP__ |
Functions | |
int | cmpHuffStatTmpStruct (const HuffStatTmpStruct &a, const HuffStatTmpStruct &b) |
int | operator< (const HuffStatTmpStruct &a, const HuffStatTmpStruct &b) |
int __cdecl | _cmpStat (const void *a_, const void *b_) |
void | shellSort (HuffStatTmpStruct *a, int N) |
|
Definition at line 2 of file HuffStatTmp.cpp. |
|
Definition at line 17 of file HuffStatTmp.cpp. 00017 { 00018 HuffStatTmpStruct* a = (HuffStatTmpStruct*)a_; 00019 HuffStatTmpStruct* b = (HuffStatTmpStruct*)b_; 00020 return cmpHuffStatTmpStruct( *a, *b ); 00021 } |
|
Definition at line 4 of file HuffStatTmp.cpp. Referenced by _cmpStat(), and operator<().
|
|
Definition at line 11 of file HuffStatTmp.cpp. 00013 { 00014 return cmpHuffStatTmpStruct( a, b ) < 0; 00015 } |
|
Definition at line 23 of file HuffStatTmp.cpp. Referenced by HuffStat::makeSortedTmp().
00023 { 00024 int i, j; 00025 HuffStatTmpStruct v; 00026 00027 /* 00028 for ( int h = 1; h <= N/9; h = ( 3 * h + 1 ) )// determine the value for h 00029 ; 00030 */ 00031 00032 assert( 13 <= N / 9 ); 00033 assert( 40 > N / 9 ); 00034 00035 int h = 40; 00036 00037 for ( ; h > 0; h /= 3 ) { // h = 40, 13, 4, 1 00038 for ( i = h + 1; i <= N; ++i ) { 00039 v = a[i]; 00040 j = i; 00041 00042 while ( ( j > h ) && ( v < a[j - h] ) ) { 00043 a[j] = a[j-h]; 00044 j -= h; 00045 } 00046 00047 a[j] = v; 00048 } 00049 } 00050 } |