写一个冒泡排序

Tags
算法
ID
47
 
#include <stdio.h> int main() { int i, j, temp, flag; int arr[] = {5, 7, 8, 1, 2, 4, 6, 9, 12}; int len = sizeof(arr)/sizeof(int); for(i = 0; i < len - 1; i++) { flag = 0; for (j = 0; j < len - 1 - i; j++) { if(arr[j] > arr[j+1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } if(flag == 1) break; } for(i = 0; i < len; i++) { printf("%d ", *(arr+i)); } printf("\n"); return 0; }
故名思意,冒泡排序,每次把最大的数字上升到最末尾。