排序算法(四):冒泡排序

来源:互联网 发布:日程管理app 知乎 编辑:程序博客网 时间:2024/05/17 06:44

初学数据结构

/*排好的元素放在最后*/#include <stdio.h>typedef int KeyType;struct DataType{KeyType key;};/*算法*/void BubbleSort(struct DataType a[],int n)   // a[] 要排序的数组,n 数组中的元素个数{int i,j;/* flag 变量用于标记本次交换排序过程是否有交换动作,若本次交换排序*过程没有交换动作则说明数据元素集合全部排好序,就可提前结束排序过程*/int flag = 1;      struct DataType temp;for(i = 1; i < n && flag == 1; i++)   // i 控制排序循环的次数(初始值 i=1)共有 n-1 趟排序{flag = 0;for(j = 0; j < n-i; j++)     // j 控制元素位置{if(a[j].key > a[j+1].key){flag = 1;temp = a[j+1];a[j+1] = a[j];a[j] = temp;}}}}/*测试程序*/int main(){int i;int n = 21;struct DataType test[21] = {1,16,45,87,23,5,9,34,10,6,26,64,5,7,89,6,24,100,4,7,19};BubbleSort(test,n);       /*注意这个的参数及参数传递*/for(i = 0; i < n; i++){printf(" %d ",test[i].key);}printf("\n");//system("pause");         //暂停return 0;}


原创粉丝点击