吐槽
写着篇文章呢,只是想吐槽一下自己吧,我学习东西是先看概念再写代码,每次看到一个概念,就会想知道这个概念用代码怎么表达出来。然后再后面就会去思考这段代码得应用场景,否则我学习它的意义何在,只看不适用,没有任何的成就感。
冒泡排序
我搜索到了一个文章,不,几乎是一大片文章,都是下面这个意思,冒泡概念
就着这个概念,是,代码有很多写法,实现方式各不同,可是他们的相同之处都是来源于这个概念呀。冒泡两个相邻的元素,两两比较大小,然后往上冒泡。
<script>
var numArr = [10, 3, 2, 6];
var temp = 0;
for(var i = 0; i < numArr.length; i++){
for(var k = 0 ; k < numArr.length - i - 1 ; k++){
if(numArr[k] > numArr[k+1]){
temp = numArr[k];
numArr[k] = numArr[k+1];
numArr[k+1] = temp;
console.log('welcome');
}
}
console.log('numArr:',numArr);
}
console.log(numArr);
</script>
这样写,没错呀,我能理解呀,代码怎么运行的,是否理解,以前或许不是很懂代码怎么运行,有时候会想的有出入,可是后来的每次,一到想不通,或者看不懂,我都会去调试代码看如何运行的。
纠结
<script>
function arrSort(arr) {
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
var temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
console.log('arr:',arr);
}
return arr
}
console.log(arrSort([10, 3, 2, 6]));
</script>
看到这段代码,我沉默了,有时候明明看懂了,知道它是怎么运行的,也调式了,可是和概念对不上,很纠结,特别纠结,做的第一件事就是百度定义,冒泡排序一搜索,四个大字查出来的东西都不是我想要的,因为概念对不上。
否定
这个时候我就会不断的否定自己,难道是我理解出问题了吗,难道我真的智商低吗,最终脑子一片空白,怀疑人生,怀疑到不适合此行业,但是心里就是不服,倔强的很厉害,因为定义就是这样定义的,所有资料最终的指证了(相邻元素之间两两比较大小)。顶着打破沙锅问到底,我知道问的多了,别人会烦,会产生反感,可是依旧坚持去问了,但是还是有点失落,因为最终他们都说,如果你非要这么纠结这个概念,那我也没办法。
坚持
本来打算带着遗憾就回家的,先冷静一下,但是好在最终有个大哥哥,看了我的问题,然后去找了另外一个定义,冒泡概念。这个终于能够说服了我。
结果
虽然过程真的把我搞得想死,头皮发麻,极度否定,前阵子看到一篇文章里面的内容有一章节大概意思就是不要那么固执的一头钻进一个技术里去深纠一些东西,虽然我不懂为什么这么说,但是我感觉吧,今天大概就是这样,被同事骂,问到有点冷场。也不是很失落吧!