#include "stdio.h" //@TODO 冒泡排序 由小到大递增排序 //@authod yeshaoting int n = 10; int data[] = {2,1,5,7,4,3,0,6,9,8}; void display() { for(int i=0; i<n; i++) { printf("%d\t", data[i]); } } void bubble_sort() { for(int i=0; i<n-1; i++) { bool flag = false; //是否发生交换 int index = i; //用来保存最后发生交换的位置,取代下一次迭代 i 值 for(int j=n-1; j>i; j--) { if(data[j]<data[j-1]) { int temp = data[j]; data[j] = data[j-1]; data[j-1] = temp; flag = true; index = j-1; } } i = index; if(!flag) //整趟扫描都未发生交换,说明已经排好序 break; } display(); } void main(int argc, char *argv[]) { bubble_sort(); return; }