• 技术文章 >后端开发 >C#.Net教程

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

    coldplay.xixicoldplay.xixi2020-06-20 15:05:18原创1241

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

    冒泡排序算法代码是:

    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语言视频教程

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

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:冒泡排序算法
    上一篇:c++中判断重载方法的依据是什么 下一篇:表达式求值的c语言代码是什么?
    大前端线上培训班

    相关文章推荐

    • 如何实现python冒泡排序算法?• 冒泡排序算法由一个什么循环控制?• java实现冒泡排序算法• 什么是冒泡排序算法

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网