多语言展示
当前在线:368今日阅读:84今日分享:32

C语言排序算法:[1]教你理解快速排序。

快速排序是经常用到的一种排序算法,它的原理是什么?如何实现,坐标X为您一一解答。
方法/步骤
1

一、假设我们给一个int数组进行排序,数组中数字初始序列为int a[9]={3,6,5,9,7,1,8,2,4}

2

二、分析快速排序的原理前,我们先声明一些东西,首先设置一个临时变量用来存放随机取出数组中的一个数,一般我们取数组的第一个元素也就是说temp=a[0],同时设置两个游标分别指向数组第一个元素和最后一个元素。

3

三、算法的基本运算步骤为:1、依次比较数组的后游标所指与temp的大小,如果tempa[j],则停止移动,将a[j]赋值给a[i]

4

四、算法的基本运算步骤为:2、依次比较数组的前游标所指与temp的大小,如果temp>a[i],则i++,直到遇到第一个temp

5

五、算法运算步骤为:3、判断i是否等于j,如果不相等则循环1、2步,直到i等于j,则完成一次快速排序。

7

七、一次排序完之后在分别对temp前的数组元素和temp后的数组元素分别进行快排,直到数组元素个数为1则停止。

8

八、运行结果如下:

注意事项
1

快排用到的挖坑填数和分治法使得其时间复杂度大部分情况下为n*logn,被广泛使用并考察。

2

如果这篇经验对您有帮助,希望您不吝评论、投票、收藏,您的支持是对我最大的鼓励。--坐标X

推荐信息