常见的几种排序方法

我们以数组a[ ]={2,6,8,9,1,2}进行排序输出作为列子:下面我来总结几种方法来帮助大家学习


1:常规排序


       首先2和6对比,2不比6大不因此不交换,所以还是268912,然后2和89对比2都是比89小,还是268912,到了2和1比,2比1大所以变成168922,之后2和2对比,相同交换位置,之后再用6和89对比,6比89都小,所以不换,6比2小,所以换成128962,之后2和2相等交换位置,之后8和9比,比9小不会,然后和6比,比6大所以进行交换变成126982,之后6和2比,6比2大所以交换变成122986,之后是9比8大,所以交换变成122896,然后8比6大所以交换,变成122698,最后9比8大所以交换变成122689,总结就是每一位和后面比吧最小的放在前面完成排序。
程序可以用连个for循环
常见的几种排序方法_第1张图片

2:冒泡排序法
冒泡排序和常规排序相反,两两比较,把大的数放在后面我们268912做例子,首先2和6比较,2比6小,所以补交换,然后和8比小,也不交换,和9也一样,然后9和1比,9大进行交换变成268192,然后9和2比大进行交换268129,如此类推,两两比较,每次把最大的那个数放在后面在GCC下的代码如下:
常见的几种排序方法_第2张图片




快速排序法
常见的几种排序方法_第3张图片
常见的几种排序方法_第4张图片
常见的几种排序方法_第5张图片
常见的几种排序方法_第6张图片
使用快速排序法他的速度不一定,有时可能一次就排好,有时比较慢,还不理解的可以看http://v.youku.com/v_show/id_XNDI0ODk4NTMy.html?from=s1.8-1-1.2这个视频,用舞蹈的方式生动的诠释快速排序法

你可能感兴趣的:(C语言)