#include <stdio.h>
#include <stdbool.h>
void swap(int* a, int* b)
{
int tmp;
tmp = *a;
*a = *b;
*b = tmp;
return;
}
/* 一头冒泡 */
void bubbleSort(int arr[], int ArrSize)
{
for (int j = ArrSize - 1; j >= 0; j--)
{
for (int i = 0; i < j; i++)
{
if (arr[i] > arr[i + 1])
swap(&arr[i], &arr[i + 1]);
}
}
}
/* 两头冒泡 */
void cockTailSort(int arr[], int ArrSize)
{
int L = 0, R = ArrSize - 1;
while (L < R)
{
for (int i = L; i < R; i++) if (arr[i] > arr[i + 1]) swap(&arr[i], &arr[i + 1]);
for (int i = 0; i < ArrSize; i++) printf("%d\t", arr[i]); printf("\n");
R--;
for (int j = R; j > L; j--) if (arr[j] < arr[j - 1]) swap(&arr[j], &arr[j - 1]);
for (int i = 0; i < ArrSize; i++) printf("%d\t", arr[i]); printf("\n");
L++;
}
}
int main()
{
int arr[] = { 2,6,7,8,3,645,434,4,1,0 };
int ArrSize = sizeof(arr) / sizeof(int);
for (int i = 0; i < ArrSize; i++)
{
printf("%d\t", arr[i]);
}
printf("\n");
cockTailSort(arr, ArrSize);
for (int i = 0; i < ArrSize; i++) printf("%d\t", arr[i]);
printf("\n");
return 0;
}
冒泡排序
最新推荐文章于 2022-04-29 23:24:15 发布