冒泡排序就是把小的元素往前调或者把大的元素往后调
冒泡排序算法的运作如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数,针对所有的元素重复以上的步骤,除了最后一个。
也就是把数组中最小的那个往上冒,冒的过程就是和他相邻的元素交换。这个冒的过程就是内循环。
经过了一个冒的过程,可以使一个最小的元素冒出来,如果数组里面有 n 个元素,就得冒 n-1 次,这就是外循环。
#include<stdio.h> #include<stdlib.h> void bubble_sort(int src[],int size) { int i = 0; int tmp = 0; int j = 0; for (j = 0; j < size-1; j++) { for (i = 0; i < size; i++) { if (src[i] > src[i + 1]) { tmp = src[i]; src[i] = src[i + 1]; src[i + 1] = tmp; } } } } int main() { int arr[6] = {8,3,4,2,6,5}; int len = sizeof arr / sizeof arr[0]; int i = 0; bubble_sort(arr,len-1); for (i = 0; i < len; i++) { printf("%d ", arr[i]); } system("pause"); return 0; }
原文地址:http://iynu17.blog.51cto.com/10734157/1711196