冒泡排序算法代码是什么?

互联网 20-6-20

冒泡排序算法代码是什么?

冒泡排序算法代码是:

void vBubbleSort(int arr[], int len){     int i, j, temp;     for (j = 0; j < len - 1; j++){            //每次最大元素就像气泡一样"浮"到数组的最后         for (i = 0; i < len - 1 - j; i++){    //依次比较相邻的两个元素,使较大的那个向后移             if(arr[i] > arr[i + 1]){            //交换两个数                 temp = arr[i];                 arr[i] = arr[i + 1];                 arr[i + 1] = temp;             }         }     } } void vBubbleSortChange(int arr[], int len){     int i,j,temp;     int swapped = 1;     for (j = 0; swapped; j++){            //每次最大元素就像气泡一样"浮"到数组的最后         swapped = 0;         for (i = 0; i < len - 1 - j; i++){    //依次比较相邻的两个元素,使较大的那个向后移             if(arr[i] > arr[i + 1]){            //交换两个数                 temp = arr[i];                 arr[i] = arr[i + 1];                 arr[i + 1] = temp;                 swapped = 1;             }         } //        if(    swapped == 0) {j = len-1;}//如果没有元素交换,说明序列是顺序的,退出循环     } } void vCockTailSort(int arr[],int len){     int tmp,i,left=0,right = len-1;     while(left < right){         for(i=left;i<right;i++){//正向冒泡,确定最大值             if(arr[i]>arr[i+1]){                 tmp = arr[i];                 arr[i] = arr[i+1];                 arr[i+1] = tmp;             }         }         right--;         for(i=right;i>left;i--){//反向冒泡,确定最小值             if(arr[i]<arr[i-1]){                 tmp = arr[i];                 arr[i] = arr[i-1];                 arr[i-1] = tmp;             }         }         left++;     } } void vCockTailSortChange(int arr[],int len){     int tmp,i,left=0,right = len-1;     int swapped = 1;     int bound = 0;//记录某趟遍历的最后一次交换元素的位置,优化减少循环次数     while(swapped){//如果没有元素交换,说明序列是顺序的         swapped = 0;         for(i=left;i<right;i++){//正向冒泡,确定最大值             if(arr[i]>arr[i+1]){                 tmp = arr[i];                 arr[i] = arr[i+1];                 arr[i+1] = tmp;                 swapped = 1;                 bound = i;             }         }         right=bound;//缩小遍历边界         for(i=right;i>left;i--){//反向冒泡,确定最小值             if(arr[i]<arr[i-1]){                 tmp = arr[i];                 arr[i] = arr[i-1];                 arr[i-1] = tmp;                 swapped = 1;                 bound = i;             }         }         left=bound;//缩小遍历边界     } }

推荐教程:《C语言视频教程》

以上就是冒泡排序算法代码是什么?的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:c++中判断重载方法的依据是什么

相关资讯