<czech>
Tohle je prvni priklad co by se mohlo nachazet v tehle googlegroup. Jak
optimalizovat kod zmineny nize? V podstate je to cast tzv. funkce
QuickSortSwap(), kterou mnohokrat volam ve sve implementaci QuickSortu,
takze mi jde o to, aby byla co nejvice efektivni. V tomto pripade je
datovy typ T == unsigned int. Ptam se jeste jednou : "Mate nejake
napady, jak optimalizovat, kod zmineny nize?". Mimochodem ja osobne
pouzivam microsoft visual c++ 6.0.
</czech>
void inline QuickSortSwap(const unsigned int p, const unsigned int x,
const unsigned int b) {
......non interresting code is skipped.....
866: T* t = storage[b];
004085AD mov eax,dword ptr [ebp-4]
004085B0 mov ecx,dword ptr [eax+0Ch]
004085B3 mov edx,dword ptr [ebp+10h]
004085B6 mov eax,dword ptr [ecx+edx*4]
004085B9 mov dword ptr [ebp-8],eax
867: storage[b] = storage[x];
004085BC mov ecx,dword ptr [ebp-4]
004085BF mov edx,dword ptr [ecx+0Ch]
004085C2 mov eax,dword ptr [ebp-4]
004085C5 mov ecx,dword ptr [eax+0Ch]
004085C8 mov eax,dword ptr [ebp+10h]
004085CB mov esi,dword ptr [ebp+0Ch]
004085CE mov edx,dword ptr [edx+esi*4]
004085D1 mov dword ptr [ecx+eax*4],edx
868: storage[x] = storage[p];
004085D4 mov eax,dword ptr [ebp-4]
004085D7 mov ecx,dword ptr [eax+0Ch]
004085DA mov edx,dword ptr [ebp-4]
004085DD mov eax,dword ptr [edx+0Ch]
004085E0 mov edx,dword ptr [ebp+0Ch]
004085E3 mov esi,dword ptr [ebp+8]
004085E6 mov ecx,dword ptr [ecx+esi*4]
004085E9 mov dword ptr [eax+edx*4],ecx
869: storage[p] = t;
004085EC mov edx,dword ptr [ebp-4]
004085EF mov eax,dword ptr [edx+0Ch]
004085F2 mov ecx,dword ptr [ebp+8]
004085F5 mov edx,dword ptr [ebp-8]
004085F8 mov dword ptr [eax+ecx*4],edx
......non interresting code is skipped.....
}