冒泡排序
冒泡排序在一组需要排序的数组中,对两两数据顺序与要求顺序相反时,交换数据,使大的数据往后移,每趟排序将最大的数放在最后的位置上,数据的变化像冒泡一样往上升的。
#include <stdio.h>
void printArray(int arr[], int n)
{
int i;
for(i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
void bubbleSort(int arr[], int n)
{
int i, j, tmp;
for(i = 0; i < n - 1; i++)
{
for(j = 1; j < n; j++)
{
if(arr[j] < arr[j - 1])
{
tmp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = tmp;
}
printf("the inner %d,%d sort: ",i+1,j);
printArray(arr, 10);
}
printf("the %d sort: ",i+1);
printArray(arr, 10);
}
}
int main()
{
int arr[10] = {2,5,6,4,3,7,9,8,1,0};
printArray(arr, 10);
printf("start to sort=========\n");
bubbleSort(arr, 10);
printf("after sorting=========\n");
printArray(arr, 10);
return 0;
}
运行结果是:
C:\Users\Administrator\Desktop\sort>bubbleSort.exe
2 5 6 4 3 7 9 8 1 0
start to sort=========
the inner 1,1 sort: 2 5 6 4 3 7 9 8 1 0
the inner 1,2 sort: 2 5 6 4 3 7 9 8 1 0
the inner 1,3 sort: 2 5 4 6 3 7 9 8 1 0
the inner 1,4 sort: 2 5 4 3 6 7 9 8 1 0
the inner 1,5 sort: 2 5 4 3 6 7 9 8 1 0
the inner 1,6 sort: 2 5 4 3 6 7 9 8 1 0
the inner 1,7 sort: 2 5 4 3 6 7 8 9 1 0
the inner 1,8 sort: 2 5 4 3 6 7 8 1 9 0
the inner 1,9 sort: 2 5 4 3 6 7 8 1 0 9
the 1 sort: 2 5 4 3 6 7 8 1 0 9
the inner 2,1 sort: 2 5 4 3 6 7 8 1 0 9
the inner 2,2 sort: 2 4 5 3 6 7 8 1 0 9
the inner 2,3 sort: 2 4 3 5 6 7 8 1 0 9
the inner 2,4 sort: 2 4 3 5 6 7 8 1 0 9
the inner 2,5 sort: 2 4 3 5 6 7 8 1 0 9
the inner 2,6 sort: 2 4 3 5 6 7 8 1 0 9
the inner 2,7 sort: 2 4 3 5 6 7 1 8 0 9
the inner 2,8 sort: 2 4 3 5 6 7 1 0 8 9
the inner 2,9 sort: 2 4 3 5 6 7 1 0 8 9
the 2 sort: 2 4 3 5 6 7 1 0 8 9
the inner 3,1 sort: 2 4 3 5 6 7 1 0 8 9
the inner 3,2 sort: 2 3 4 5 6 7 1 0 8 9
the inner 3,3 sort: 2 3 4 5 6 7 1 0 8 9
the inner 3,4 sort: 2 3 4 5 6 7 1 0 8 9
the inner 3,5 sort: 2 3 4 5 6 7 1 0 8 9
the inner 3,6 sort: 2 3 4 5 6 1 7 0 8 9
the inner 3,7 sort: 2 3 4 5 6 1 0 7 8 9
the inner 3,8 sort: 2 3 4 5 6 1 0 7 8 9
the inner 3,9 sort: 2 3 4 5 6 1 0 7 8 9
the 3 sort: 2 3 4 5 6 1 0 7 8 9
the inner 4,1 sort: 2 3 4 5 6 1 0 7 8 9
the inner 4,2 sort: 2 3 4 5 6 1 0 7 8 9
the inner 4,3 sort: 2 3 4 5 6 1 0 7 8 9
the inner 4,4 sort: 2 3 4 5 6 1 0 7 8 9
the inner 4,5 sort: 2 3 4 5 1 6 0 7 8 9
the inner 4,6 sort: 2 3 4 5 1 0 6 7 8 9
the inner 4,7 sort: 2 3 4 5 1 0 6 7 8 9
the inner 4,8 sort: 2 3 4 5 1 0 6 7 8 9
the inner 4,9 sort: 2 3 4 5 1 0 6 7 8 9
the 4 sort: 2 3 4 5 1 0 6 7 8 9
the inner 5,1 sort: 2 3 4 5 1 0 6 7 8 9
the inner 5,2 sort: 2 3 4 5 1 0 6 7 8 9
the inner 5,3 sort: 2 3 4 5 1 0 6 7 8 9
the inner 5,4 sort: 2 3 4 1 5 0 6 7 8 9
the inner 5,5 sort: 2 3 4 1 0 5 6 7 8 9
the inner 5,6 sort: 2 3 4 1 0 5 6 7 8 9
the inner 5,7 sort: 2 3 4 1 0 5 6 7 8 9
the inner 5,8 sort: 2 3 4 1 0 5 6 7 8 9
the inner 5,9 sort: 2 3 4 1 0 5 6 7 8 9
the 5 sort: 2 3 4 1 0 5 6 7 8 9
the inner 6,1 sort: 2 3 4 1 0 5 6 7 8 9
the inner 6,2 sort: 2 3 4 1 0 5 6 7 8 9
the inner 6,3 sort: 2 3 1 4 0 5 6 7 8 9
the inner 6,4 sort: 2 3 1 0 4 5 6 7 8 9
the inner 6,5 sort: 2 3 1 0 4 5 6 7 8 9
the inner 6,6 sort: 2 3 1 0 4 5 6 7 8 9
the inner 6,7 sort: 2 3 1 0 4 5 6 7 8 9
the inner 6,8 sort: 2 3 1 0 4 5 6 7 8 9
the inner 6,9 sort: 2 3 1 0 4 5 6 7 8 9
the 6 sort: 2 3 1 0 4 5 6 7 8 9
the inner 7,1 sort: 2 3 1 0 4 5 6 7 8 9
the inner 7,2 sort: 2 1 3 0 4 5 6 7 8 9
the inner 7,3 sort: 2 1 0 3 4 5 6 7 8 9
the inner 7,4 sort: 2 1 0 3 4 5 6 7 8 9
the inner 7,5 sort: 2 1 0 3 4 5 6 7 8 9
the inner 7,6 sort: 2 1 0 3 4 5 6 7 8 9
the inner 7,7 sort: 2 1 0 3 4 5 6 7 8 9
the inner 7,8 sort: 2 1 0 3 4 5 6 7 8 9
the inner 7,9 sort: 2 1 0 3 4 5 6 7 8 9
the 7 sort: 2 1 0 3 4 5 6 7 8 9
the inner 8,1 sort: 1 2 0 3 4 5 6 7 8 9
the inner 8,2 sort: 1 0 2 3 4 5 6 7 8 9
the inner 8,3 sort: 1 0 2 3 4 5 6 7 8 9
the inner 8,4 sort: 1 0 2 3 4 5 6 7 8 9
the inner 8,5 sort: 1 0 2 3 4 5 6 7 8 9
the inner 8,6 sort: 1 0 2 3 4 5 6 7 8 9
the inner 8,7 sort: 1 0 2 3 4 5 6 7 8 9
the inner 8,8 sort: 1 0 2 3 4 5 6 7 8 9
the inner 8,9 sort: 1 0 2 3 4 5 6 7 8 9
the 8 sort: 1 0 2 3 4 5 6 7 8 9
the inner 9,1 sort: 0 1 2 3 4 5 6 7 8 9
the inner 9,2 sort: 0 1 2 3 4 5 6 7 8 9
the inner 9,3 sort: 0 1 2 3 4 5 6 7 8 9
the inner 9,4 sort: 0 1 2 3 4 5 6 7 8 9
the inner 9,5 sort: 0 1 2 3 4 5 6 7 8 9
the inner 9,6 sort: 0 1 2 3 4 5 6 7 8 9
the inner 9,7 sort: 0 1 2 3 4 5 6 7 8 9
the inner 9,8 sort: 0 1 2 3 4 5 6 7 8 9
the inner 9,9 sort: 0 1 2 3 4 5 6 7 8 9
the 9 sort: 0 1 2 3 4 5 6 7 8 9
after sorting=========
0 1 2 3 4 5 6 7 8 9
C:\Users\Administrator\Desktop\sort>