默写冒泡排序+直接插入排序
冒泡排序-改进 ,头脑里对这幅图像很清晰,一遍过。
void swap(int* a, int* b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void bubblesort(int arr[], int length)
{
int i, j;
for (i = 0; i < length; i++)
{
bool stamp = true;
for (j = length - 1; j > i; j--)
{
if (arr[j] < arr[j - 1])
swap(&arr[j], &arr[j - 1]);
stamp = false;
}
if (stamp == true)
{
break;
}
}
}
int main()
{
int arr[8] = { 5,0,6,9,4,3,1,2 };
int i;
bubblesort(arr, 8);
for (i = 0; i < 8; i++)
printf("%d ", arr[i]);
return 0;
}
直接插入排序想了一会才想出来,但也是一遍过
void insertionsort(int arr[], int length)
{
int i, j;
for (i = 1; i < length; i++)
{
if (arr[i - 1] > arr[i])
{
int temp = arr[i];
for (j = i - 1; j >= 0 && arr[j] > temp; j--)
{
arr[j + 1] = arr[j];
}
arr[j + 1] = temp;
}
}
}
int main()
{
int arr[12] = { 5,12,65,45,3,5,15,26,0,18,32,22 };
int i;
insertionsort(arr, 12);
for (i = 0; i < 12; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
不错,点赞。