写在前面
冒泡排序的核心思想就是两两相邻的元素进行比较,
每完成一趟冒泡排序, 都会有一个元素放到要放的位置上.
实现
#include <stdio.h> void swap(int* a, int* b) { int tmp = *a; *a = *b; *b = tmp; } void bubble_sort(int arr[], int size) { for (int i = 0; i < size - 1; i++) { int is_order = 1; for (int j = 0; j < size - 1 - i; j++) { if (arr[j] > arr[j + 1]) { is_order = 0; swap(&arr[j], &arr[j + 1]); } } if (is_order == 1) { break; } } } int main() { int arr[10] = { 10,9,8,7,6,5,4,3,2,1 }; int size = sizeof(arr) / sizeof(arr[0]); bubble_sort(arr, size); printf("after bubble_sort:\n"); for (int i = 0; i < size; i++) { printf("%d ", arr[i]); } return 0; }
|
写在最后
自己动手实现一下吧~