用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例

用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例

快速排序时间复杂度为O(nlogn),是数组相关主题中经常用到的算法。下面这篇文章主要介绍C语言实现快速排序的相关信息,有需要的朋友可以参考一下。

首先我们要对一组数据进行排序:

在数组中选择一个参考号(通常是数组中的第一个,用黄色圆圈标记);

将数组中小于引用号的数据移到引用号的左侧,将大于引用号的数据移到右侧。如何移动它,以后再说;

对于参考号左右两侧的数组,连续重复上述两个过程,直到每个子集只有一个元素,即全部有序。

好了,咱们开始吧!

快速排序需要两个哨兵,I和J,分别指向数组的头和尾。接下来就是搬家了。

通常我们选择第一个元素作为参考号,移动数组元素到达这个参考号。左边比它小,右边比它大。开始移动I和J,I和J交互移动。这里我们需要先移动J。这是为什么呢?原因是先移动J,当这一行移动到尽头,I的下一个是J的时候,我们就先移动J,这样可以避免错误的移动数据。以后会有经验的。

当你移动J时,你开始比较J是否大于参考数。如果大于等于J—,否则就看I,如果I小于等于6,就和参考数比较I。不然我就和j指的值互换了,我们看上面这个。

第一步:看到J的值小于6,再看I,I的值是6,所以I,后面的I继续,4,3,5都小于6,所以I移动到7以下。

此时,j指向的值应该与I指向的值互换.

完成交换,然后比较J指向的位置是否大于参考数。如果更大,J-;

这里,7,9,都大于6,所以J—,做两次,J达到4以下。

4小于6,所以再看I,I指向0,所以需要I,1到1的时候也小于6,所以还是需要。这里我指的是和J一样的数字4,

那么i=j,不能满足条件,只好把I指向的数和参考数交换,这一轮比较就结束了。

这里基准数6的左边小于6,右边大于6。我们据此开始参考数字6的左右对比。

后来就这样找,然后把第一个元素分别排序为左右两边的参考号。

以此类推,就好了,我把代码贴上。

#包含stdio.h

#定义尺寸6

//快速排序

void quick_sort(int num[],int low,int high)

{

int i,j,temp

int tmp

i=低;

j=高;

tmp=num[low];//指定为中间分割线,左边比他小,右边比他大。通常,第一个元素是基准数。

If(i j) //如果下标I大于下标j,函数结束运行

{

返回;

}

而(我!=j)

{

while(num[j]=tmp j i)

{

j-;

}

while(num[i]=tmp j i)

{

我;

}

如果(j i)

{

temp=num[j];

数字[j]=数字[I];

num[I]=temp;

}

}

num[low]=num[I];

num[I]=tmp;

quick_sort(num,low,I-1);

quick_sort(num,i 1,high);

}

int main(int argc,char **argv)

{

//创建一个数组

int num[SIZE]={ 0 };

int I;

//输入一个数字

for(I=0;I尺寸;我)

{

scanf('%d ',num[I]);

}

quick_sort(num,0,SIZE-1);

for(I=0;I尺寸;我)

{

printf(' %d ',num[I]);

}

返回0;

}

总结

这就是这篇关于快速排序的C语言实现的文章。更多相关C语言快速排序内容,请搜索我们之前的文章或者继续浏览下面的相关文章。希望你以后能支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 利用c语言实现三子棋游戏的目标,c语言三子棋程序,利用C语言实现三子棋游戏
  • 留言与评论(共有 条评论)
       
    验证码: