void CTestDlg::OnButton5()
{
// TODO: Add your control notification handler code here
//冒泡排序
int Data[] = {76,24,35,89,56,12,27};
for(int i=0;i<sizeof(Data)/sizeof(Data[0]);i++)
{
for(int j=0;j<sizeof(Data)/sizeof(Data[0])-i-1;j++)
{
if(Data[j] > Data[j+1])
{
int tmp = Data[j+1];
Data[j+1] = Data[j];
Data[j] = tmp;
}
}
}
}
void CTestDlg::OnButton6()
{
// TODO: Add your control notification handler code here
//二分查找
int Data[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
//int Data[] = {0, 1, 2, 3, 4, 5, 6, 7, 8};
for(int i=0;i<sizeof(Data)/sizeof(Data[0]);i++)
{
int indexLow = 0;
int indexHigh = sizeof(Data)/sizeof(Data[0]) - 1;
int indexMid = (indexLow + indexHigh) / 2;
int nCount = 1;
int Search = i;
if((Search < Data[indexLow]) || (Search > Data[indexHigh]))
{
MessageBox("Error");
return;
}
while(Data[indexMid] != Search)
{
nCount++;
if(Data[indexMid] < Search)
{
indexLow = indexMid + 1;
}
else //Data[indexMid] > Search
{
indexHigh = indexMid - 1;
}
indexMid = (indexLow + indexHigh) / 2;
}
CString str;
str.Format("Index = %d, nCount = %d/r/n", indexMid, nCount);
TRACE(str);
}
}
void CTestDlg::OnButton7()
{
// TODO: Add your control notification handler code here
//插入排序
int Data[8] = {-1, 24, 76, 35, 89, 56, 12, 27};
for(int i=2;i<sizeof(Data)/sizeof(Data[0]);i++)
{
if(Data[i] < Data[i-1])
{
Data[0] = Data[i];
for(int j=i-1;Data[0] < Data[j];j--)
{
Data[j+1] = Data[j];
}
Data[j+1] = Data[0];
}
TRACE("%d %d %d %d %d %d %d %d/r/n", Data[0], Data[1], Data[2], Data[3], Data[4], Data[5], Data[6], Data[7]);
}
}