Linux打印现象
代码如下:
typedef int datatype;
int binaryserch(datatype arr[], datatype key, int low, int high);
void bubbsorting(datatype arr[], int n);
void choicesorting(datatype arr[],int n);
void insertsorting(datatype arr[], int n);
int main()
{
datatype arr1[6] = {2,3,4,6,8,9};
datatype arr2[6] = { 2,3,4,6,8,9 };
datatype arr3[6] = { 2,3,4,6,8,9 };
datatype arr4[6] = { 2,3,4,6,8,9 };
int n = sizeof(arr1) / sizeof(arr1[0]);
int indx = binaryserch(arr1,6,0,5);
printf("二分查找:arr[%d] = %d\n",indx,arr1[indx]);
bubbsorting(arr2,n);
choicesorting(arr3,n);
insertsorting(arr4,n);
return 0;
}
int binaryserch(datatype arr[], datatype key, int low, int high)
{
int mid;
while (low <= high)
{
mid = (low + high) / 2;
if (key < arr[mid]) high = mid - 1;
if (key > arr[mid]) low = mid + 1;
if (key == arr[mid]) return mid;
}
return -1;
}
void bubbsorting(datatype arr[],int n)
{
int storage = 0;
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - 1 - i; j++)
{
if (arr[j] > arr[j+1])
{
storage = arr[j];
arr[j] = arr[j+1];
arr[j+1] = arr[j];
}
}
}
printf("冒泡排序:\n");
for (int k = 0; k < n - 1; k++)
{
printf("%d ", arr[k]);
}
putchar(10);
return;
}
void choicesorting(datatype arr[], int n)
{
for (int i = 0; i < 6 - 1; i++)
{
int min = i,storage = 0;
for (int j = i + 1; j < 6; j++)
{
if (arr[min] < arr[j])
{
min = j;
}
}
if (min != i)
{
storage = arr[min];
arr[min] = arr[i];
arr[i] = storage;
}
}
printf("选择排序:\n");
for (int k = 0; k < n - 1; k++)
{
printf("%d ", arr[k]);
}
putchar(10);
return;
}
void insertsorting(datatype arr[], int n)
{
int i, j,storage = 0;
for (i = 1; i < 6; i++)
{
storage = arr[i];
for (j = i-1; j >= 0 && arr[j] > storage; j--)
{
arr[j + 1] = arr[j];// > 时大数上浮,< 时小数上浮
}
arr[j + 1] = storage;
}
printf("插入排序:\n");
for (int k = 0; k < n - 1; k++)
{
printf("%d ", arr[k]);
}
putchar(10);
return;
}