关于c语言几种排序方法的理解
2017-04-17 15:38
447 查看
1、选择排序法:每一个循环,假定要比较的数组中的第一个数字为最大(小)数,依次与剩余的未比较的数比较,找出要排序的数组中的一个最大(小)数,拿出放在第一的位置位置,再从剩余的数据中找出一个最大(小)数放在上一个最大(小)数的后面,一次直到只剩最后一个数字。(思路简单,计算量大,适合小数据的排序。)
2、冒泡排序法:假定要讲数组从小到大排序,则在第一轮的循环中,由最后一个数字与倒数第二个数字比较,较小者放到倒数第二的位置,较大者放到最后的位置;然后将倒数第二个与倒数第三个比较,将较小者放到倒数第三的位置,将较大者放到倒数第二的位置。。。依次到最小的数字到第一的位置,然后再对除第一个数字外的其他数字进行上面方法的排序,直到只剩最后一个数字为止。冒泡法就是相邻数之间最小(大)数的传递。(计算量较大,适合小数量的数组排序。)
3、交换法排序:同冒泡法的区别在于,冒泡法是将符合条件的数组由相邻的位置想前传输,而交换法是符合条件的数至于一个位置交换,即将符合出现在某个位置的数直接向那个位置交换。(计算量较大,适合小数量的数字排序)
4、插入法排序:取第一个数作为站桩的基准位置,然后再取出另一个数,放到合适的位置。可以称之为依次战队法。(计算量较大,适合小数组排序)
5、对折法排序:利用递归法,每次取出中值后,(如果是由小到大排序)从左向右先依次与左面的数比较,小于左面的数时,与之交换位置,完成后再从右向左将右侧的数与现在的中值比较,小于中值时,与中值交换位置,左右完成之后则中值左侧数小于中值,中值右侧的数大于中值。再利用递归法对左右两侧的子数组对折法排序。。。(适合大数据的排序)。
2、冒泡排序法:假定要讲数组从小到大排序,则在第一轮的循环中,由最后一个数字与倒数第二个数字比较,较小者放到倒数第二的位置,较大者放到最后的位置;然后将倒数第二个与倒数第三个比较,将较小者放到倒数第三的位置,将较大者放到倒数第二的位置。。。依次到最小的数字到第一的位置,然后再对除第一个数字外的其他数字进行上面方法的排序,直到只剩最后一个数字为止。冒泡法就是相邻数之间最小(大)数的传递。(计算量较大,适合小数量的数组排序。)
3、交换法排序:同冒泡法的区别在于,冒泡法是将符合条件的数组由相邻的位置想前传输,而交换法是符合条件的数至于一个位置交换,即将符合出现在某个位置的数直接向那个位置交换。(计算量较大,适合小数量的数字排序)
4、插入法排序:取第一个数作为站桩的基准位置,然后再取出另一个数,放到合适的位置。可以称之为依次战队法。(计算量较大,适合小数组排序)
5、对折法排序:利用递归法,每次取出中值后,(如果是由小到大排序)从左向右先依次与左面的数比较,小于左面的数时,与之交换位置,完成后再从右向左将右侧的数与现在的中值比较,小于中值时,与中值交换位置,左右完成之后则中值左侧数小于中值,中值右侧的数大于中值。再利用递归法对左右两侧的子数组对折法排序。。。(适合大数据的排序)。
相关文章推荐
- 数据排序的几种方法(c语言实现)
- 关于几种特殊排序的自我理解(堆排序篇)
- 几种排序方法的实现 (C语言)
- 数据排序的几种方法(c语言实现)
- 关于OC中的几种数组排序方法
- c语言几种有用的排序方法
- 几种常见的排序方法(C语言实现)
- c语言常见的几种排序方法总结
- C语言中的几种排序方法
- 用C语言关于学生管理系统的几种实现方法(一位数组,二维数组,指针,结构体)
- 几种排序方法的C语言实现
- 关于对常见的几种排序的理解。
- javascript 的几种排序方法
- JAVA几种排序方法
- 关于web中下拉列表的几种实现方法
- 关于‘吃’的几种英语表达方法
- 各种排序方法的C语言实现
- [转]关于日期天数计算的几种方法
- 关于几种std::vector访问方法的效率
- 关于入侵检测系统常用的几种检测方法