• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 一个快速排序算法代码分享

一个快速排序算法代码分享

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了快速排序算法代码,c#冒泡排序算法代码,排序算法代码,合并排序算法代码,希尔排序算法代码等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

typedef struct _student
{
 int id;
 char name[30];
}student,*pStudent;

student students[20] =
{
 {13,"狐狸金"},{15,"杜十娘"},{8,"葫芦娃"},{4,"喜羊羊"},
 {14,"叮当猫"},{18,"孙悟空"},{3,"格列佛"},{6,"咖啡猫"},
 {19,"猪八戒"},{11,"程序员"},{5,"鲁滨逊"},{9,"金枪鱼"},
 {10,"马大哈"},{12,"周星星"},{1,"灰太狼"},{2,"唐老鸭"},
 {20,"子虚君"},{16,"乌有君"},{7,"小二郎"},{17,"贾宝玉"},
};

//students[]是需要进行排序的数组,length是students数组的元素个数
void quickSort(student students[],int length)
{
 int i,j,flag = students[0].id;
 student stutemp;
 int t;

 if(length>1)
 {
  for(t=0;t<length;t++)
  {
   printf("%d   ",students[t].id);
  }
  printf("\n");

  //为分区选好分裂点
  for(i=0,j=length-1;i<j;)
  {
   for(;students[i].id<flag;i++);
   for(;students[j].id>flag;j--);

   stutemp.id = students[j].id;
   strcpy(stutemp.name,students[j].name);

   students[j].id = students[i].id;
   strcpy(students[j].name,students[i].name);

   students[i].id = stutemp.id;
   strcpy(students[i].name,stutemp.name);
  }

  //打印排序过程
  for(t=0;t<length;t++)
  {
   printf("%d   ",students[t].id);
  }
  printf("----排序后\n-----------------------------------中轴:%d 中轴下标:%d\n",flag,j);

  //进行分区并对分区进行递归调用quickSort,在原数组空间里进行操作
  quickSort(&students[0],j+1);
  quickSort(&students[j+1],length-j-1);
 }
}

int main()
{
 int i;

 //排序前打印
 printf("排序前:\n");
 for(i=0;i<20;i++)
 {
  printf("%d  %s\t",students[i].id,students[i].name);
  if(!((i+1)%5))
  {
   printf("\n");
  }
 }

 quickSort(students,20);

 //排序后打印
 printf("__________________________________________________________________\n排序后:\n");
 for(i=0;i<20;i++)
 {
  printf("%d  %s\t",students[i].id,students[i].name);
  if(!((i+1)%5))
  {
   printf("\n");
  }
 }

 return 0;
}
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 一个快速排序算法代码分享

相关文章

  • 2017-05-28C++类成员构造函数和析构函数顺序示例详细讲解
  • 2017-05-28C语言实现在数组A上有序合并数组B的方法
  • 2017-05-28C语言行优先和列优先的问题深入分析
  • 2017-05-28C语言基础 原码、反码、补码和移码详解
  • 2017-05-28C++基于栈实现铁轨问题
  • 2017-05-28深入c++中临时对象的析构时机的详解
  • 2017-05-28C语言数据结构 双向链表的建立与基本操作
  • 2017-05-28解读C++编程的相关文件操作
  • 2017-05-28c语言中getch,getche,getchar的区别
  • 2017-05-28linux c语言操作数据库(连接sqlite数据库)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++实现DES加密算法实例解析
    • C++线程同步实例分析
    • C++中const的实现机制深入分析
    • c语言算术运算符越界问题解决方案
    • C++实现寻找最低公共父节点的方法
    • 详解C语言中strpbrk()函数的用法
    • C++中指向对象的常指针与指向常对象的指针详解
    • C++语言实现hash表详解及实例代码
    • C++中的常对象与常对象成员详解
    • C++ Explicit关键字详细解析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有