|
danataylor wrote: QuickSort is infinitely faster than a bubble sort
In general it is; but in its worse case, it's as bad as other sorts.
Watched code never compiles.
|
|
|
|
|
QuickSort isn't "infinitely" faster than a bubble sort. Its efficiency depends on the choice of pivot, and its performance can be sensitive to the initial order (as explained in that article). For small arrays a bubble sort can be faster!
It's usually better to use a built-in sort because that will have had time spent on it to reduce such problems.
|
|
|
|
|
I would recommend the use of the functions from the standard library like qsort or qsort_s .
|
|
|
|
|
«_Superman_» wrote: I would recommend the use of the functions from the standard library like qsort or qsort_s .
agreed! save time
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You
|
|
|
|
|
Interesting sort functions. The first function can be associated to a "bubble sort" except nothing is "bubbling up" in the list array. The inner loop is only storing the index of the smallest value. Then at the end of the second loop (bottom of the first loop), the values are swapped. This is more efficient than a bubble sort because we are not swapping the items in the array (excessive memory access) every time we determine that (list[j] < list[min]). The swap is done n times rather than (n * n) times.
The second sort is sorting an array of indexes based on the percentage change. The original list array is untouched. It is used only for reference. The final result is the indexByGain array. This should be returned. But, it is not and so is lost. For the reporting, the programmer would need to run through the indexByGain to print out the report as:
for (int k = 0; k < length; k++)
printf("%f\n", list[indexByGain[k]].getPercentChange());
assuming that getPercentChange() returns a double or float. Sorry, my C coding is a bit rusty.
|
|
|
|
|
Array.Sort and ArrayList.Sort are both Quick Sorts. Can you create either of these with your data and use them?
"Coding for fun and profit ... mostly fun"
|
|
|
|
|
The first one (sort()), scans the list to find the smallest item (it assumes that elemType has operator<() defined, which we presume is bases on it's ticker symbol string). It then swaps that items with the item in list[0]. Next it scans for the smallest between list[1] and the end, and swaps that with list[1], and onward, swapping the smallest among list[2] & the end with list[2]. I believe this actually makes it an insertion sort, which is slightly faster that a bubble sort (and generally considered the best for small lists)
The second sort (sortByGain()) doesn't want to change the order of the items in list (which presumably have just been sorted by sort()), so it creates a array of indexes into list, so that after both functions are called list[0] is the first stock alphabetically, while list[indexByGain[0]] is the stock with the highest gain.
sortByGain() does a proper (slow) Bubble sort, potenially swapping after every compare, moving the desired item (which is the smallest in the first sort and the largest in the second) one position closer to it's final location each time.
Truth,
James
|
|
|
|
|
Hello,
Im using a bunch of owner-drawn button in an MFC application Im updating. Im loking for an easy way to keep the buttons down when selected and implimenting ToolTip. Ive looked everywhere I can think of and cant find a solution.
Thanks in advanced
Derrek
|
|
|
|
|
|
You may change the button style from BS_PUSHBUTTON to BS_CHECKBOX|BS_PUSHLIKE. The the states should automatically be OK, also for owner drawn buttons.
To change the style, you may use the overloaded method PreSubclassWindow with the help of ModifyStyle(BS_PUSHBUTTON,BS_CHECKBOX|BS_PUSHLIKE);
|
|
|
|
|
Not sure if this is the correct area of the forum for this but here goes:
I have a solution which has 2 exe apps within it (both console apps).
Application (1) kicks of an instance of application (2) using the windows API function CreateProcess().
My question is how do I go about debugging application (2)? - using the standard attach to process option doesn't seem to be working and visual studio never enables my breakpoints.
|
|
|
|
|
You could start a next instance of the VS
and then - select the menu item "Tools->Attach to process" there
They sought it with thimbles, they sought it with care;
They pursued it with forks and hope;
They threatened its life with a railway-share;
They charmed it with smiles and soap.
|
|
|
|
|
|
Hi,
Does anyone know of a free app to list DLL exports? I have tried DLL Export Viewer v1.41 by Nir Sofer but my virus checker prevents me running it.
|
|
|
|
|
Try it[^]
They sought it with thimbles, they sought it with care;
They pursued it with forks and hope;
They threatened its life with a railway-share;
They charmed it with smiles and soap.
|
|
|
|
|
Thanks, that works a treat. I remember this now from a long time ago - it just got better!
|
|
|
|
|
|
and then there is DUMPBIN, a Visual Studio command-line utility.
|
|
|
|
|
Hi Guys, Need help in the current task.. I was trying to put a CMFCToolBar inside the CFormView and i thought will have no problems and used the code bellow. Now this form view is to be kept a Dockable pane. But while doing this i got few problems. To put the toolbar in the FormView, i did this.. The TOOLBAR in the RC File is like this..
IDR_TOOLBAR1 TOOLBAR 16, 16
BEGIN
BUTTON IDC_BTN_1
BUTTON IDC_BTN_2
BUTTON IDC_BTN_3
END
The InitialUpdate of the FormView Derived class is like this: -
<span style="COLOR: blue">void</span> CMyFormView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
CWnd *pWnd = NULL;
CRect rcPos;
<span style="COLOR: blue">if</span>(!m_wndToolView.Create(<span style="COLOR: blue">this</span>, AFX_DEFAULT_TOOLBAR_STYLE, IDR_TOOLBAR1))
{
TRACE0(<span style="COLOR: #a31515">"Failed to Create Dialog Toolbar\n"</span>);
}
m_wndToolView.LoadToolBar(IDR_TOOLBAR1, 0, 0, TRUE <span style="COLOR: green"></span>);
m_wndToolView.CleanUpLockedImages();
m_wndToolView.LoadBitmap(IDR_TOOLBAR1, 0, 0, TRUE <span style="COLOR: green"></span>);
m_wndToolView.SetPaneStyle(m_wndToolView.GetPaneStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | WS_CHILD | WS_TABSTOP);
m_wndToolView.SetPaneStyle(m_wndToolView.GetPaneStyle() & ~(CBRS_GRIPPER | CBRS_SIZE_DYNAMIC | CBRS_BORDER_TOP | CBRS_BORDER_BOTTOM | CBRS_BORDER_LEFT | CBRS_BORDER_RIGHT));
m_wndToolView.SetOwner(<span style="COLOR: blue">this</span>);
CSize szToolBar = m_wndToolView.CalcFixedLayout( FALSE, TRUE ); <span style="COLOR: green">
}
Now a few problems i am getting are: - 1. The Toolbar images are not coming proper 2. The Update of the Toolbar items is not coming.
HARSH
Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning.
|
|
|
|
|
May be also done as following
int CDiaFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
ModifyStyle(0, WS_CLIPCHILDREN);
ModifyStyleEx(WS_EX_CLIENTEDGE, 0);
m_cToolBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_TOP, 1);
m_cToolBar.SetPaneStyle(m_cToolBar.GetPaneStyle() | CBRS_TOOLTIPS | CBRS_FLYBY);
m_cToolBar.SetPaneStyle(m_cToolBar.GetPaneStyle() & ~(CBRS_GRIPPER | CBRS_SIZE_DYNAMIC | CBRS_BORDER_TOP | CBRS_BORDER_BOTTOM | CBRS_BORDER_LEFT | CBRS_BORDER_RIGHT));
m_cToolBar.LoadToolBar(IDR_DIATOOLBAR, 0, 0, TRUE);
return 0;
}
void CDiaFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);
static CSize sizeToolBar(m_cToolBar.CalcFixedLayout(TRUE, TRUE));
CRect crClient;
GetClientRect(crClient);
crClient.bottom = sizeToolBar.cy;
m_cToolBar.MoveWindow(crClient);
}
And then - create/size this frame in a docable pane.
Of course you have to define the frame's reactions/updates for all commands from your bar as well
They sought it with thimbles, they sought it with care;
They pursued it with forks and hope;
They threatened its life with a railway-share;
They charmed it with smiles and soap.
|
|
|
|
|
Thanks for the relpy Eugen Podsypalnikov,
however i have done the same in my code its not working and i have no clues why is it so..
the bitmaps are still improper, buttons are disabled and i am getting no update message for them..
HARSH
Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning.
|
|
|
|
|
You can try to go from a level to another,
here would be a possible check list :
1. Own dockable pane
2. Own frame window
2a. Embedding of the frame into the pane (what can you see at this stage ?)
3. Own toolbar
3a. Embedding of the bar into the frame
4. Implementing of the frame's update/reactions functions
They sought it with thimbles, they sought it with care;
They pursued it with forks and hope;
They threatened its life with a railway-share;
They charmed it with smiles and soap.
|
|
|
|
|
Hi all
I am getting stranger problem.Application show "A required resource was" this message.I just memory leak check in application.
Please help me
modified on Tuesday, November 23, 2010 6:30 AM
|
|
|
|
|
MsmVc wrote: I am getting stranger problem.Application show "A required resource was" this message.
Your question is not very clear. Please post the exact message that you see, and explain where it comes from, compiler, linker, application etc.
MsmVc wrote: I just memory leak but no memory leak in application.
What does this mean? Either you have a memory leak or you do not, it cannot be both.
Just say 'NO' to evaluated arguments for diadic functions! Ash
|
|
|
|
|
When i run the application read from excel file and add values in CListCtrl.That time i am getting this message.
Yes you are right i have memory leak problem in application.
Please help me
|
|
|
|