冒泡排序法的基本思想:(以升序为例)含有n个元素的数组原则上要进行n-1次排序。对于每一躺的排序,从第一个数开始,依次比较前一个数与后一个数的大小。如果前一个数比后一个数大,则进行交换。这样一轮过后,最大的数将会出现称为最末位的数组元素。第二轮则去掉最后一个数,对前n-1个数再按照上面的步骤找出最大数,该数将成为倒数第二的数组元素......n-1轮过后,就完成了排序。
#include <stdio.h>
int main(int argc, const char * argv[]) {
int array[]={18,25,2,41,32,19,7};
int len =7;
for (int i=0; i<len-1; i++) {
for (int j=0; j<len-1-i; j++) {
if (array[j]>array[j+1]) {
//此处使用异或来对调变量的值
array[j]=array[j]^array[j+1];
array[j+1]=array[j]^array[j+1];
array[j]=array[j]^array[j+1];
}
}
}
for (int i=0; i<len; i++) {
printf("%d\t",array[i]);
}
return 0;
}
|
|