#include <stdio.h>
int BinarySearch(int * arr, int length, int value);
int BubbleSort(int *piArr, int iLen);
int main()
{
int iArr[10] = {1, 4, 3, 7, 10, 9, 5, 6, 8, 2};
BubbleSort(iArr, 10);
int i = 0;
printf("iArr = ");
for (; i<10; i++)printf("%d ", iArr[i]);
printf("\n");
printf("n = %d", BinarySearch(iArr, 9, 4));
printf("\n");
return 0;
}
int BinarySearch(int * arr, int length, int value)
{
int iStart = 0;
int iEnd = length;
int iMid = iStart + (iEnd - iStart) / 2;
if (arr == NULL) return -1;
if (*arr == value) return 0;
if (*(arr + length) == value) return length;
while (iStart <= iEnd)
{
// int iMid = iStart + (iEnd - iStart) / 2;
if (arr[iMid] == value)
{
return iMid;
}
else if (arr[iMid] < value)
{
iEnd = iMid - 1;
}
else
{
iStart = iMid + 1;
}
iMid = iStart + (iEnd - iStart) / 2;
}
printf("Don't find!\n");
return -1;
}
int BubbleSort(int *piArr, int iLen)
{
int iTemp = 0;
int i, j;
int flag = 0;
for (i=0; i<iLen-1; i++)
{
for (j=0; j<iLen-i-1; j++)
{
if (*(piArr+j) < *(piArr+j+1))
{
iTemp = *(piArr+j);
*(piArr+j) = *(piArr+j+1);
*(piArr+j+1) = iTemp;
}
}
}
return 0;
}