c语⾔冒泡排序详解
冒泡排序是什么?先看看书上的定义
说真的,这本书对新⼿来说⼀点都不友好,新⼿只要看第⼀句话就⾏,继续看 下去他除了迷惑你之外⼀点⽤处都没有,⽣怕你学会⼀样。
没错,这段代码没有注释,要是注释有⽤的话还要⼈讲⼲嘛?并且也不⽤函数调⽤什么的,只是讲冒
泡的⼀个思维。
⾸先头⽂件会写吧?主函数会写吧?数组会定义并且会写9到0吧?
这个程序的⽬的是从⼩到⼤排序知道吧?
先从两个for循环开始讲(两个for的时候内层的for先执⾏完,外层的for才会加+1,怕有些⼈不知道)
第⼀个for定义了⼀个i⽤来控制循环的趟数,⼀共是9趟。说⼈话就是:从9到0,⼀共是10个数,你要从⼩到⼤排序,那就把最⼩的数⼀个个扔在前⾯,扔9次不就能排好10个数了?
第⼆个for定义了⼀个j,j=9表⽰从最后⼀个数开始,因为数组的下标是从0开始的,所以9就表⽰第10个数了,⽽我们这个代码的⽐较也是从后⾯开始的。那么j为什么要⼤于i?因为内层for每次循环完(这⾥的循环完表⽰跳出内层循环,外层循环+1)不就把⼀个最⼩的数放在前⾯了吗?对于排好的数那就没必要每次再⽐较⼀次吧?所以就随着i每次的增加,⽐较的数就相应的减少
接下来就到了if判断,这⾥判断的是后⼀个数是否⽐前⼀个数⼩,如果⼩的话就交换,因为是从⼩到⼤排序。交换的话应该都会吧?其实顺序⽆所谓,只要最后完成交换就⾏了,定义⼀个变量⽤来存放数组的元素,然后其中⼀个数组赋值给另外⼀个数组,再把变量赋值给没有赋值过的数组。
最后再把排序好的打印出来就⾏。
c语言的冒泡排序算法总结⼀下吧,冒泡排序,也就是每次⽐较相邻两个数的⼤⼩,你可以根据⾃⼰是从⼤到⼩排序还是从⼩到⼤排序来判断,当然也可以从头开始⽐较,也可以从后⾯开始来⽐较,看个⼈,再玩得花点的也可以⽤函数传参,我这⾥只是讲冒泡的⼀个思路。