冒泡排序

来源:互联网 发布:java保护代码 编辑:程序博客网 时间:2024/06/03 15:41
#include <stdio.h>
/*
冒泡排序:


思想:
第一个和其他的一次比较,小的到前面(交换),完成一次循环后,最小的已经到了第一个位置
然后,第二个和剩下的一次比较,第二小的到了第二个位置。。。
如此,从小到大的顺序排好。
*/
void BubbleSort(int* arr,int length){
int i,j,tmp;

printf("Array before sorting:\n");
for(i=0;i<length;i++){
printf("%d\t",arr[i]);
}


for(i=0;i<length-1;i++){
for(j=i;j<length;++j){
if(arr[i] > arr[j]){
tmp = arr[j];
arr[j] = arr[i];
arr[i] = tmp;
}
}
}


printf("\nArray after sorting:\n");
for(i=0;i<length;i++){
printf("%d\t",arr[i]);
}
printf("\n");
getchar();
}


int main(void){
int i_arr[] = {12,21,23,32,34,43,45,54,56,65,67,76,78,87,78,89,98,89,90};
int i_arr_size;


i_arr_size = sizeof(i_arr) / sizeof(i_arr[0]);

BubbleSort(i_arr,i_arr_size);


return 0;
}
0 0