用C语言编写冒泡排序,要求调用子函数,并改变原函数中数组序列。
================================================ 功能:冒泡排序 输入:数组名称(也就是数组首地址)、数组中元素个数 ================================================ */ /* ==================================================== 算法思想简单描述: 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上 而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较 小的往上冒。 即:每当两相邻的数比较后发现它们的排序与排序要 求相反时,...全部
================================================ 功能:冒泡排序 输入:数组名称(也就是数组首地址)、数组中元素个数 ================================================ */ /* ==================================================== 算法思想简单描述: 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上 而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较 小的往上冒。
即:每当两相邻的数比较后发现它们的排序与排序要 求相反时,就将它们互换。 下面是一种改进的冒泡算法,它记录了每一遍扫描后最后下沉数的 位置k,这样可以减少外层循环扫描的次数。 冒泡排序是稳定的。
算法时间复杂度O(n2)--[n的平方] ===================================================== */ void bubble_sort(int x[], int n) { int j, k, h, t; for (h=n-1; h>0; h=k) /*循环到没有比较范围*/ { for (j=0, k=0; j *(x j 1)) /*大的放在后面,小的放到前面*/ { t = *(x j); *(x j) = *(x j 1); *(x j 1) = t; /*完成交换*/ k = j; /*保存最后下沉的位置。
这样k后面的都是排序排好了的。*/ } } } }。收起