基本思想,向气球冒泡泡一样,每次比较相邻两个数,如果a[i]大于a[i+1],则交换,负责继续比较。这样每一轮比较过后大一点的数据都到了最后一位。每次比较一轮都减少一个数据,减少的数据为这一轮比较的最大的数,放到了最后。
Ø 设置标志位减少程序运行 #include <stdio.h> #include <stdlib.h> #include <string.h> #define _number 10 void Swap(int *_Data1, int *_Data2); void Bubble_Sort(int Data[], int num); int main() { int Arrayname[10] = { 1,8,33,676,22,8321,63,34,99,100 }; int variables; Bubble_Sort(Arrayname, _number); printf("冒泡排序之后为:\n"); for (variables = 0; variables < _number; variables++) { printf("%-5d", Arrayname[variables]); } printf("\n"); return 0; } void Swap(int *_Data1, int *_Data2) { int contextData; contextData = *_Data1; *_Data1 = *_Data2; *_Data2 = contextData; } void Bubble_Sort(int Data[], int num) { int Bubble_sort[_number]; int i, j; int flag; for (i = 0; i < _number - 1; i++) { flag = 1; for (j = 0; j < _number - i - 1; j++) { if (Data[j] > Data[j + 1]) { Swap(&Data[j], &Data[j + 1]); flag = 0; } } if (flag) break; } }
如果对您的问题有帮助的话可以帮忙点个赞,谢谢~QQ群:540093471 有问题大家可以一起交流沟通!