• 【JavaScript】7-30 字符串的冒泡排序 (20分)


    题目:

    我们已经知道了将N个整数按从小到大排序的冒泡排序法。本题要求将此方法用于字符串序列,并对任意给定的K(<N),输出扫描完第K遍后的中间结果序列。

    输入格式:

    输入在第1行中给出N和K(1K<N100),此后N行,每行包含一个长度不超过10的、仅由小写英文字母组成的非空字符串。

    输出格式:

    输出冒泡排序法扫描完第K遍后的中间结果序列,每行包含一个字符串。 

    输入样例:

    6 2
    best
    cat
    east
    a
    free
    day

    输出样例:

    best
    a
    cat
    day
    east
    free

    思路:

    参考整数冒泡排序法,不同的是输入行数要根据第一行的N,需要先读取到N值。

    在JavaScript中字符串的大小可以直接用【>】或【<】进行比较,JS解释器会把字符串转换为ASCII码逐个字符依次比较。

    JavaScript代码:

    var readline = require('readline');
    
    //创建一个readline接口实例
    var readlineTest = readline.createInterface({    
        input: process.stdin,
        output: process.stdout    
    });
    
    var tempArray=[];    //创建数组来存储每一行的数据
    var tempArrayIndex=0;//初始化数组的索引
    
    readlineTest.on('line', function(line){
        
        //将每一行的内容添加至数组tempArray
        tempArray[tempArrayIndex]=line;
        tempArrayIndex++;
        
        var line1 = tempArray[0].split(' ')
        var N = parseInt(line1[0])
        var K = parseInt(line1[1])
    
        var strArr = []
        for (let i = 1; i <= N; i++) {
            strArr.push( tempArray[i] )
        }
        //当已输入的行数达到最大输入的行数时,结束readline.Interface实例
        if (tempArray.length == N + 1) {
            var ret = sort(N, K,strArr)        
            console.log(ret)
            readlineTest.close();
        }
        
    });
    
    //当readlineTest执行'close'命令时,输入流关闭,程序结束。
    readlineTest.on('close', function() {    
        process.exit(0);    
    });
    
    function sort(N, K, strArr) {
        
        for (let i = 0; i < K; i++) {
            var max = strArr[0]
            for (let j = 1; j < N; j++) {
                if (max > strArr[j]) {
                    strArr[j - 1] = strArr[j]
                    strArr[j] = max
                } else {
                    max = strArr[j]
                }
            }
        }
    
        var newarr = strArr.join('
    ')
    
        return newarr
    }
  • 相关阅读:
    蓝桥杯 历届试题 带分数
    Myeclipse 操作数据库
    HDU 1007Quoit Design(最近点问题)
    java坦克大战源码下载
    蓝桥杯 历届试题 九宫重排
    Ueditor的配置和使用
    java 显示透明背景png图片
    mysql数据库移植
    错误:document.getElementById("userForm").submit();Object is not a function
    jsp获得文件的绝对路径
  • 原文地址:https://www.cnblogs.com/moonskies/p/14338344.html
Copyright © 2020-2023  润新知