JS基础 Java 冒泡排序

冒泡排序升序排列

    var arr = [9, 2, 3, 15, 5];
    console.log("排序前" + arr);
    function sort() {
   
        for (var i = 0; i < arr.length - 1; i++) {
   
            for (var j = 0; j < arr.length - i - 1; j++) {
   
                if (arr[j] > arr[j + 1]) {
   
                    var temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        console.log("排序后" + arr);
    }
    sort();

更新
冒泡降序排列,如果第一次循环数组有序,直接跳出循环,时间复杂度O(N)

		var s = [32,78,12,88,45,91,75];
        // var s = [8, 6, 5, 4, 3, 1];
        function bubbleFun(arr) {
   
            var flag = 0;
            for (var i = 0; i < arr.length - 1; i++) {
   
                // 剔除算法,每循环一遍少比较一次,O(N*N) 
                for (var j = 0; j < arr.length - i - 1; j++) {
   
                    if (arr[j] < arr[j + 1]) {
   
                        var temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                        flag = 1;
                    }
                }
                // 冒泡最优情况,数组降序排列,时间复杂度O(N) 
                if (flag === 0)
                    break;
            }
            return arr;
        }
        console.log(bubbleFun(s));

学Java时也写了冒泡排序,实现方法一样。

package homework;

/** * @author Yangsongle * @date 2020-8-12 * @time 16:56:32 * @describe 0812作业 */

public class homework {
   
	public static void main(String[] args) {
   
		// 对数组从小到大进行排序,然后输出排序后结果。
		int[] arr = {
    88, 32, -23, 18, 12, 90, 2 };
		sortFun(arr);
	}

	// 针对以上数组从小到大进行排序,然后输出排序后结果。
	public static void sortFun(int array[]) {
   
		int flag = 0;
		for (int i = 0; i < array.length - 1; i++) {
   
			// 剔除算法,每循环一遍少比较一次,O(N*N)
			for (int j = 0; j < array.length - i - 1; j++) {
   
				if (array[j] > array[j + 1]) {
   
					// 异或交换两个数,不需要引入第三个变量
					array[j] = array[j + 1] ^ array[j];
					array[j + 1] = array[j + 1] ^ array[j];
					array[j] = array[j + 1] ^ array[j];
					flag = 1;
				}
				// 冒泡最优情况,数组降序排列,时间复杂度O(N)
				if (flag == 0)
					break;
			}
		}
		// 遍历输出
		System.out.print("排序后结果为:");
		for (int k = 0; k < array.length; k++) {
   
			System.out.print(array[k] + " ");
		}
		System.out.println();
	}
全部评论

相关推荐

03-15 10:59
已编辑
美团_后端开发(实习员工)
爱写代码的菜code...:哎,自己当时拿到字节offer的时候也在感叹终于拿到了,自己当时最想去的企业就是字节,结果还是阴差阳错去了鹅厂。祝uu一切顺利!!!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
11764次浏览 102人参与
# 你的实习产出是真实的还是包装的? #
2051次浏览 43人参与
# 巨人网络春招 #
11399次浏览 223人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7731次浏览 43人参与
# 简历第一个项目做什么 #
31821次浏览 344人参与
# 重来一次,我还会选择这个专业吗 #
433658次浏览 3926人参与
# MiniMax求职进展汇总 #
24285次浏览 310人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187301次浏览 1122人参与
# 牛客AI文生图 #
21466次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152552次浏览 888人参与
# 研究所笔面经互助 #
118989次浏览 577人参与
# 简历中的项目经历要怎么写? #
310536次浏览 4228人参与
# AI时代,哪些岗位最容易被淘汰 #
64049次浏览 837人参与
# 面试紧张时你会有什么表现? #
30531次浏览 188人参与
# 你今年的平均薪资是多少? #
213244次浏览 1039人参与
# 你怎么看待AI面试 #
180316次浏览 1266人参与
# 高学历就一定能找到好工作吗? #
64351次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76644次浏览 374人参与
# 我的求职精神状态 #
448232次浏览 3129人参与
# 正在春招的你,也参与了去年秋招吗? #
363696次浏览 2638人参与
# 腾讯音乐求职进展汇总 #
160723次浏览 1112人参与
# 校招笔试 #
471601次浏览 2964人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务