汉扬编程 编程大纲 C语言编程笔记丨C语言简单实现快速排序,不知道的快来补课

C语言编程笔记丨C语言简单实现快速排序,不知道的快来补课

快速排序是一种不稳定排序,它的时间复杂度为O(n·lgn),最坏情况为O(n2);空间复杂度为O(n·lgn)。

C语言编程笔记丨C语言简单实现快速排序,不知道的快来补课

这种排序方式是对于冒泡排序的一种改进,它采用分治模式,将一趟排序的数据分割成独立的两部分,其中一组数据的每个值都小于另一组。每一趟在进行分类的同时实现排序。

C语言编程笔记丨C语言简单实现快速排序,不知道的快来补课

C语言编程笔记丨C语言简单实现快速排序,不知道的快来补课

其中每一趟的模式通过设置key当基准元素,key的选择可以是数据的第一个,也可以是数据的最后一个。这里以每次选取数据的第一个为例:

另外,关于C/C++编程学习,小编给大家提供一个学习.交.流群,欢迎到访:569268376

具体代码实现:

#include<stdio.h>

#define N 6

int fun(int arr[],int low,int high)

{

int key;

key=arr[low];

while(low<high)

{

while(low<high && arr[high]>=key)

high–;

if(low<high)

arr[low++]=arr[high];

while(low<high && arr[low]<=key)

low++;

if(low<high)

arr[high–]=arr[low];

}

arr[low]=key;

return low;

}

void quick_sort(int arr[],int start,int end)

{

int pos;

if(start<end)

{

pos=fun(arr,start,end);

quick_sort(arr,start,pos-1);

quick_sort(arr,pos+1,end);

}

}

int main()

{

int i;

int arr[N]={32,12,7,78,23,45};

for(i=0;i<N;i++)

{

printf(\”%d \”,arr[i]);

}

printf(\”\\n\”);

quick_sort(arr,0,N-1);

for(i=0;i<N;i++)

{

printf(\”%d \”,arr[i]);

}

return 0;

}

c语言简单数据类型有哪些?

  C语言有五种基本数据类型:字符、整型、单精度实型、双精度实型和空类型。尽管这几种类型数据的长度和范围随处理器的类型和C语言编译程序的实现而异,但以bit为例,整数与CPU字长相等,一个字符通常为一个字节,浮点值的确切格式则根据实现而定

C语言还提供了几种聚合类型(aggregate types),包括数组、指针、结构、共用体(联合)、位域和枚举

除v o i d类型外,基本类型的前面可以有各种修饰符。
  修饰符用来改变基本类型的意义,以便更准确地适应各种情况的需求。修饰符如下:
• signed(有符号)。
• unsigned(无符号)。
• long(长型符)。
• short(短型符)。
  修饰符s i g n e d、s h o r t、l o n g和u n s i g n e d适用于字符和整数两种基本类型,而l o n g还可用于d o u b l e(注意,由于long float与d o u b l e意思相同,所以A N S I标准删除了多余的long float)。
  

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/mianfei/6206.html

C语言为何到现在都是热门语言?原因很简单,程序员大牛都知道

C语言快速入门——理解字符数组与字符串

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部