冒泡排序,插入排序,二分查找


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]);
 }
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值