如何使用C语言来编写一个快速排序的代码
C语言是一中用来学习数据结构的十分适合的软件。排序算法是一种很基本的数据结构的算法。下面就来介绍一下应该如何用C语言写一个选择排序,希望能给大家有所帮助。
一、准备好头文件和主函数
1、首先要将代码的主要头文件和主函数写出来,因为函数的执行需要头文件和主函数。需要用到的头文件是stdio.h和stdlib.h。主函数是main().如下图所示。
二、写主函数内容
1、先写主函数里没有调用快速排序函数时的功能,即确定需要输入的进行排序的数字的个数,输入数列后直接输出数列。使用一个scanf和两个for循环。
三、写快速排序函数
1、快速排序函数遵循的原则是:1.在数组的两侧分别定义一个指镅氪瓷杵针2.定义一个数作为进行排序的基准数,比如定义左边第一位,讵畿缤耒会比较简单3.先从右边找到一个比基准数小的数与左指针位置进行互换4.再从左边找到一个比基准数大的数与右指针所在位置进行互换5.若两个指针相遇后将基准数和指针重合位置进行互换。6.然后进行分治法,分别对基准数的两边进行同样的操作直到排序结束。
2、把放在主函数里的数组放在了快速排序的函数外,因为在函数里都进行了使用定义一个函数来进行快速排序,函数里的参数为数组的左右两边。定义了两个指针,基准数,并且规定了递归结束的条件,即两个坐标越界了。
3、除了定义了递归结束的条件外,概要定义左右坐标是如何进行顺序的交换的。如果左右坐标不相等,那么就进行下一步的交换顺序相关的函数定义,如果相等,就更改基准数。
4、下面就要在左右坐标不相等的情况下写相应的语句。low和high不相等则还包括low>high的情况,要注意判断。如果右边从高到低进行寻找直到找到比基准数小的数后停止和左侧指针进行交换,对左侧指针也是同样的操作。
5、最后添加递归调用函数对基准数左右两边的产生的新的数列进行再次的递归调用,则该函数完成。整体如下图所示。
四、在主函数里进行调用
1、函数编写好后就要在主函数里进行调用了。调用方法是在输入语句和输出语句之间加入,让快速排序的函数处理后输出结果。参数为输入数组的左右坐标。
2、完成后,进行编译,输出结果和预想中的一样,说明这个程序能够正确执行,至此,完成快速排序的代码就编写完毕。