排序算法之-冒泡

顺序排序算法原理

从头开始遍历未排序数列,遍历时比较相邻的两个元素,前面的大于后面的,则双方交换位置,一直比较到末尾,这样最大的元素会出现在末尾,接着再依次从头开始遍历剩余未排序的元素,直至所有的元素都排序完成。(其实就是每次遍历时找出最大的元素,通过不断的移动位置,将其存入到未排序末尾)

算法图解

算法实现

java 复制代码
/**
     * 顺序排序
     * @param arr
     */
    public void sort(int arr[]){
        for(int j = arr.length-1;j>1;j--){
            for(int i=0;i<j;i++){
                if(arr[i]>arr[i+1]){
                    int temp = arr[i];
                    arr[i] = arr[i+1];
                    arr[i+1] = temp;
                }
            }
        }
    }

倒序排序算法原理

顺序是从头开始遍历,倒序是从末尾开始遍历,将最大元素依次存入序列开头位置

算法图解

算法实现

java 复制代码
/**
     * 倒序排序
     * @param arr
     */
    public void revert(int arr[]){
        for(int j=0;j<arr.length-1;j++){
            for(int i=arr.length-1;i>j;i--){
                if(arr[i]>arr[i-1]){
                    int temp = arr[i];
                    arr[i] = arr[i-1];
                    arr[i-1] = temp;
                }
            }
        }
    }

测试

java 复制代码
public static void main(String[] args) {
        int arr[] = {9, 7, 1991, 27, -1, -10, 0, 2, 65, -100};
        BubbleSort bubbleSort = new BubbleSort();
        bubbleSort.sort(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "\t");
        }
        System.out.println();

        int arr2[] = {9, 7, 1991, 27, -1, -10, 0, 2, 65, -100};
        bubbleSort.revert(arr2);
        for (int i = 0; i < arr2.length; i++) {
            System.out.print(arr2[i] + "\t");
        }
    }

结果

相关推荐
手握风云-11 分钟前
回溯剪枝的“减法艺术”:化解超时危机的 “救命稻草”(三)
算法·剪枝
元亓亓亓13 分钟前
LeetCode热题100--46. 全排列--中等
算法·leetcode·职场和发展
快手技术36 分钟前
从“拦路虎”到“修路工”:基于AhaEdit的广告素材修复
前端·算法·架构
qk学算法37 分钟前
力扣滑动窗口题目-76最小覆盖子串&&1234替换子串得到平衡字符串
数据结构·算法·leetcode
小欣加油38 分钟前
leetcode 860 柠檬水找零
c++·算法·leetcode·职场和发展·贪心算法
粉色挖掘机2 小时前
矩阵在密码学的应用——希尔密码详解
线性代数·算法·机器学习·密码学
七七七七072 小时前
【计算机网络】UDP协议深度解析:从报文结构到可靠性设计
服务器·网络·网络协议·计算机网络·算法·udp
TitosZhang2 小时前
排序算法稳定性判断
数据结构·算法·排序算法
一种乐趣3 小时前
PHP推荐权重算法以及分页
算法·php·推荐算法
ccLianLian3 小时前
计算机视觉·TagCLIP
人工智能·算法