从网上学习,并调试通过:
void bubble_sort(int array[], int n)
{
int i, j, temp;
for (i = 0; i < n; i++)
{
for (j = 0; j < n-i; j++)
{
if (array[j] > array[j+1])
{
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
printf("i = %d\n", i);
}
}
return;
}
void select_sort(int buf[], int n)
{
int temp;
int pos;
int i,j;
for (i = 0; i < n-1; i++)
{
temp = buf[i];
pos = i;
for (j=i+1; j<n; j++)
{
if (buf[j] < temp)
{
temp = buf[j];
pos = j;
}
}
buf[pos] = buf[i];
buf[i] = temp;
}
}
void quick_sort(int array[], int low, int high)
{
int left, right, middle;
int temp;
left = low;
right = high;
middle = (left + right)/2;
while (left < right) {
while (left<high && array[left]<array[middle])
left++;
while (right>low && array[right]>array[middle])
right--;
if (left <= right) {
temp = array[left];
array[left] = array[right];
array[right] = temp;
left++;
right--;
}
}
if (left < high)
quick_sort(array, left, high);
if (right > low)
quick_sort(array, low, right);
}
int search(int *a, int key, int low, int high)
{
int mid;
if(low > high)
return -1;
mid = (low + high)/2;
if(a[mid] == key)
return mid;
else if(a[mid]>key)
return search(a, key, low, mid-1);
else return search(a,key,mid+1, high);
}
int search_c_plus_plus(int *a, int key, int length)
{
int mid;
if(length <= 0)
return -1;
int front = 0;
int end = length -1;
mid = (front + end)/2;
while(front<end && a[mid] != key)
{
if(a[mid] < x)
front = mid +1;
if (a[mid] > x)
end = mid-1;
mid = (front + end)/2;
}
if(a[mid] != x)
printf("not find.\n");
else {
printf("find it, in %d\n", mid+1);
}
}