JSRUN 用代码说话
独傲的野狼
tjb583089373
JSRUN的第24804位用户
加入于 2019-04-11
上次活跃 2020-07-15



tjb583089373 (独傲的野狼 )- 2020-06-11 0 人
"Css3 Transform 各种变形...
let arrayDemo = [5,8,3,0,8,9,3,7,3];
/*冒泡排序:
两个for循环,外层循环控制排序的趟数,内层循环控制比较的次数。每趟过后,比较的次数都应该要减1
 */
function MaoPao(){

    let isChange;//记录是否发生置换, 0表示没有发生置换,1表示置换了
    let num = 0;//记录执行了多少趟
    console.log("冒泡开始执行>>>>>>>>>")
    for(let i=0;i<arrayDemo.length-1;i++){//外循环是排序的趟数
        isChange=0;//每比较一趟就重新初始化为0;

        for(let j=0;j<arrayDemo.length-i-1;j++){//内循环是当前趟数需要比较的次数
            //如果前一位比后一位要大,那么交换,使大的在后面
            if(arrayDemo[j]>arrayDemo[j+1]){
                let temp = arrayDemo[j];
                arrayDemo[j]=arrayDemo[j+1];
                arrayDemo[j+1]=temp;

                isChange=1;//说明发生了置换
            }


        }

        if(isChange===0){
            //如果一趟下来没有发生置换就不需要继续更进一层内循环了,跳出外层for
            break;
        }

        num++;
        console.log("冒泡趟数:"+num)
    }

        console.log(">>>>>>>>>冒泡执行完毕")
}

/*选择排序:
两个for循环,外层循环控制排序的趟数,内层循环找到当前趟数的最大值,随后与当前趟数组最后的一位元素交换
 */
function XuanZe(){
    //记录当前趟数得最大值得下标(下标也叫角标、索引)
    let max_num_index;
    console.log("选择排序执行开始>>>>>>>>>")
    for(let i=0;i<arrayDemo.length-1;i++){
        //新的趟数,将最大值所在索引初始化为0
        max_num_index = 0;

        for(let j=0;j<arrayDemo.length-i;j++){
            if(arrayDemo[j]>arrayDemo[max_num_index]){
                max_num_index = j;//两两比较找到当前趟数最大值得下标
            }

        }
        //交换值
        let temp = arrayDemo[max_num_index];
        arrayDemo[max_num_index]=arrayDemo[arrayDemo.length-1-i];
        arrayDemo[arrayDemo.length-1-i]=temp;

    }

    console.log(">>>>>>>>>选择排序执行完毕")
}

/*插入排序:
思路:将一个元素插入到已有序的数组中,在初始时未知是否存在有序的数据,因此将元素第一个元素看成是有序的。
与有序的数组进行比较,比它大则直接放入,比它小则移动数组元素的位置,找到个合适的位置插入。当只有一个数时,
则不需要插入了,因此需要n-1趟排序

代码实现:一个for循环内嵌一个while循环实现,外层for循环控制需要排序的趟数,while循环找到合适的插入位置
(并且插入的位置不能小于0)

 */
//???

function ChaRu(){
    console.log("插入排序执行开始>>>>>>>>>")

    //外层循环控制需要排序得函数,从1开始因为将0位看成了有序数据
    for(let i=1;i<arrayDemo.length;i++){
        let temp = arrayDemo[i];
        let j = i-1;
        while(j>=0 && arrayDemo[j]>temp){
            //后退一个位置,让当前数据与之前前位进行比较
            arrayDemo[j+1]=arrayDemo[j];

            j--;

        }
        //退出了循环说明找到了合适得位置,就插入当前数据
        arrayDemo[j+1]=temp;
    }

    console.log("插入排序执行结束>>>>>>>>>")
}
tjb583089373 (独傲的野狼 )- 2020-06-08 0 人
js得几个常见排序 参考https://blog...
tjb583089373 (独傲的野狼 )- 2020-06-11 0 人
随机星空,版本2
tjb583089373 (独傲的野狼 )- 2020-06-05 0 人
随机星空,版本1
tjb583089373 (独傲的野狼 )- 2020-06-02 0 人
canvas简单物理小球
tjb583089373 (独傲的野狼 )- 2020-06-11 0 人
canvas设计倒计时特效(99小时内) 出处慕...
没有了
1/6 下一页