C语言排序原理分析
2017-09-29 10:41
246 查看
C语言排序原理分析,源于先找最大值和最小值。
1:找最大值原理:
假定第1个为最大的;然后往后面看,如果后面的元素更大,就把后面那个更大的给假定的这个地方,这样始终保证这个地方总是最大的值;这样,一次循环完了,就得到了整个数组中最大的数了。
(找最小值的方式和找最大值类似)
源代码如下:
![](http://p1.pstatp.com/large/31f20001092b0ac11c71)
![](http://p3.pstatp.com/large/31e600024331f064f673)
效果如下:
![](http://p1.pstatp.com/large/31ec00050087bb662204)
可以这样的思考:一次循环可以找到最大值,那么如果我把这个最大值的元素和第1个元素交换,那么第1个元素就是整个数组的最大值了,而第1个元素以前的那个值就到后面去了。那么我只要从第2个元素开始,继续用找最大值的方式就可以找到数组余下元素中的最大值,也就是整个数组中的第2大值。
以此类推,只要循环足够,就可以让数组最后从大到小的排序了。
自然源代码如下:
![](http://p1.pstatp.com/large/31f400018bd469bb928b)
那么,测试一下是不是:
![](http://p3.pstatp.com/large/31f200010cb52ac03f27)
效果,果然如此:
![](http://p3.pstatp.com/large/31e60002481c80c6ac87)
这就是排序,看似很神奇的功能来的就是这么的顺其自然。其实计算机领域、智能领域、编程领域都是源自实际生活的,只要找到它们的生活道理,就变得很简单、很顺其自然了。
这里不仅仅是要学具体的知识,更要学的是一种学习方法,探索编程世界的方法,让自己学的轻松的方法,让一切都来的顺其自然的方法。否则只能在未来10年后转型。有了学习力,你就可以成为常胜将军,不需要转型。做到:心中有真意,稳坐钓鱼台。
更多顺其自然的编程探索,参看《C语言,好爽》第7版(2017年)宁采臣录制的。
关于数组的查找,请关注下一篇!
1:找最大值原理:
假定第1个为最大的;然后往后面看,如果后面的元素更大,就把后面那个更大的给假定的这个地方,这样始终保证这个地方总是最大的值;这样,一次循环完了,就得到了整个数组中最大的数了。
(找最小值的方式和找最大值类似)
源代码如下:
效果如下:
可以这样的思考:一次循环可以找到最大值,那么如果我把这个最大值的元素和第1个元素交换,那么第1个元素就是整个数组的最大值了,而第1个元素以前的那个值就到后面去了。那么我只要从第2个元素开始,继续用找最大值的方式就可以找到数组余下元素中的最大值,也就是整个数组中的第2大值。
以此类推,只要循环足够,就可以让数组最后从大到小的排序了。
自然源代码如下:
那么,测试一下是不是:
效果,果然如此:
这就是排序,看似很神奇的功能来的就是这么的顺其自然。其实计算机领域、智能领域、编程领域都是源自实际生活的,只要找到它们的生活道理,就变得很简单、很顺其自然了。
这里不仅仅是要学具体的知识,更要学的是一种学习方法,探索编程世界的方法,让自己学的轻松的方法,让一切都来的顺其自然的方法。否则只能在未来10年后转型。有了学习力,你就可以成为常胜将军,不需要转型。做到:心中有真意,稳坐钓鱼台。
更多顺其自然的编程探索,参看《C语言,好爽》第7版(2017年)宁采臣录制的。
关于数组的查找,请关注下一篇!
相关文章推荐
- C语言排序原理分析
- 快速排序原理、复杂度分析及C语言实现
- C语言C++编程学习:排序原理分析
- C语言排序原理及其分析
- 各种算法的C#实现系列1 - 合并排序的原理及代码分析
- 快速排序的分析及c语言代码
- 选择排序原理分析及Java实现
- KMP原理、分析及C语言实现
- 插入排序原理分析及Java实现
- js中数组排序sort方法的原理分析
- js中数组排序sort方法的原理分析
- c病毒程序原理分析(防范病毒 c语言小病毒示例)
- 希尔(shell)排序原理分析及Java实现
- C语言 - 选择排序中的--异或交换--问题分析
- MySQL排序原理与案例分析
- 【学习笔记】C语言 随机数的生成原理分析和各类随机数公式
- Python实现的选择排序算法原理与用法实例分析
- 编译原理实验之语法分析(算符优先分析算法(C语言))
- 【MySQL】排序原理与案例分析
- MySQL排序原理与案例分析