zoukankan      html  css  js  c++  java
  • 【JavaScript】7-27 冒泡法排序 (20分)

    题目:

    N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N-1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。

    本题要求对任意给定的K(<N),输出扫描完第K遍后的中间结果数列。

     输入格式:

    输入在第1行中给出N和K(1K<N100),在第2行中给出N个待排序的整数,数字间以空格分隔。

    输出格式:

    在一行中输出冒泡排序法扫描完第K遍后的中间结果数列,数字间以空格分隔,但末尾不得有多余空格。

    输入样例:

    6 2

    2 3 5 1 6 4

    输出样例:

    2 1 3 4 5 6

    JavaScript代码:

    var readline = require('readline');
    
    //创建一个readline接口实例
    var readlineTest = readline.createInterface({    
        input: process.stdin,
        output: process.stdout    
    });
    
    var lineCounts=2;    //输入的行数
    var tempArray=[];    //创建数组来存储每一行的数据
    var tempArrayIndex=0;//初始化数组的索引
    
    readlineTest.on('line', function(line){
        
        //将每一行的内容添加至数组tempArray
        tempArray[tempArrayIndex]=line;
        tempArrayIndex++;
        //当已输入的行数达到最大输入的行数时,结束readline.Interface实例
        if(tempArray.length==lineCounts){
            var line1 = tempArray[0].split(' ')
            var line2 = tempArray[1].split(' ')
            var N = parseInt(line1[0])
            var K = parseInt(line1[1])
            var numarr = []
            for (let i = 0; i < line2.length; i++) {
                numarr.push( line2[i] - '0' )
            }
            
            var ret = sort(N, K,numarr)        
            console.log(ret)
            readlineTest.close();
        }
        
    });
    
    //当readlineTest执行'close'命令时,输入流关闭,程序结束。
    readlineTest.on('close', function() {    
        process.exit(0);    
    });
    
    function sort(N, K, numarr) {
        
        for (let i = 0; i < K; i++) {
            var a = numarr[0]
            for (let j = 1; j < N; j++) {
                if (a > numarr[j]) {
                    numarr[j - 1] = numarr[j]
                    numarr[j] = a
                } else {
                    a = numarr[j]
                }
            }
        }
    
        return numarr.join(' ')
    }
  • 相关阅读:
    LeetCode Subsets II
    LeetCode Rotate Image
    LeetCode Palidrome Number
    LeetCode Generate Parentheses
    LeetCode Maximum Subarray
    LeetCode Set Matrix Zeroes
    LeetCode Remove Nth Node From End of List
    Linux Loop设备 使用
    Linux 文件系统大小调整
    LeetCode N-Queens II
  • 原文地址:https://www.cnblogs.com/moonskies/p/14329443.html
Copyright © 2011-2022 走看看