网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

c语言快排库函数 c语音快排

C语言 快排函数

函数kuaipai1 进入了无限死循环。

创新互联是一家专业提供广南企业网站建设,专注与成都网站设计、成都做网站、HTML5建站、小程序制作等业务。10年已为广南众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

递归函数没有一个节点判定递归结束,导致进入死循环

系统堆栈用完,程序崩溃。

程序调试报告有无限死循环危险,运行后就直接崩溃,导致栈溢出。

用c语言编写函数QuickSort()来实现快速排序

#include stdlib.h

#include stdio.h

#define MAXN 8

#define MOD 1024

void QuickSort(int *arr, int low, int high)

{

if (low = high) return;

//保存排序区间的 起始位置和终点位置

int left = low, right = high;

//默认 左边第一个元素 为标志

int key = arr[low];

while (low  high)

{

while (low  high  arr[high] = key) --high;

arr[low] = arr[high];

while (low  high  arr[low] = key) ++low;

arr[high] = arr[low];

}

arr[low] = key;

//每次排序后都分成两部分[left, low) (low, right]

//arr[low]的位置是一定是有序的

QuickSort(arr, left, low - 1);

QuickSort(arr, low + 1, right);

return;

}

int main(void)

{

int n;

scanf("%d", n);

int arr[MAXN] = {0};

int i;

for (i = 0; i  n; ++i)

scanf("%d", arr[i]);

//输入是默认为生活中习惯的数组左边第一个为:编号1

int s, m;

scanf("%d %d", s, m);

//转成计算机数组第一个为:编号0

s--; m--;

//快排

QuickSort(arr, s, m);

//输出

for (i = s; i = m; ++i)

{

printf("%d ", arr[i]);

}

return 0;

}

//测试数据

//8

//1 2 3 4 5 6 7 8

//2 6

输出 6 5 4 3 2

C语言字符串快速排序函数

#include stdio.h

#includestdlib.h

#includestring.h

int comp(char *a,char *b)

{

while(*a==*b*a*b){a++;b++;}

return (int)*a-(int)*b;

}

int main(void)

{

char s[1000][20];

int i,n;

scanf("%d\n",n);

for(i=0;in;i++)

gets(s[i]);

qsort(s,n,sizeof(s[0]),comp);

printf("\n");

for(i=0;in;i++)

puts(s[i]);

system("pause");

return 0;

}

C语言,结构体快排

自定义一个比较函数,直接调用快排库函数qsort即可。举例如下:

//#include "stdafx.h"//If the vc++6.0, with this line.

#include "stdio.h"

#include "stdlib.h"

#include "time.h"

struct ln{

int data,score,math;

}ss[100];

int mycmp(const void *a, const void *b){//自定义比较函数

return ((struct ln*)a)-data-((struct ln*)b)-data;//若要降序,-号前后变量交换

}//data改为score或math就可按相应要素排序

int main(void){//测试一下……

int i;

srand((unsigned)time(NULL));

for(i=0;i100;ss[i++].data=rand()%1000);

qsort(ss,100,sizeof(struct ln),mycmp);

for(i=0;i100;printf("%4d",ss[i++].data));

printf("\n");

return 0;

}


分享标题:c语言快排库函数 c语音快排
分享URL:http://bjjierui.cn/article/doeedgp.html

其他资讯