问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

诚求用C语言编一个实现常见排序算法的代码。

发布网友 发布时间:2022-11-09 09:03

我来回答

2个回答

热心网友 时间:2023-11-17 19:46

快速排序,给出两种写法,
写法一:分组和排序放在一起
#include <stdio.h>
void Qsort(int start,int length,int a[])
{
int x = a[start];
int i,j;
i = start;
j = length -1;
while(i < j)
{
if(x < a[j])
j--;
else if(x > a[j])
{
a[i] = a[j];
a[j] = x;
i++;
}
else if(x < a[i])
{
a[j] = a[i];
a[i] = x;
j--;
}
else
i++;
}
if(start < length-1)
{
Qsort(start,i,a);
Qsort(i+1,length,a);
}
}
void main()
{
int a[10] = {8,7,3,4,2,9,11,6,5,10};
int i;
Qsort(0,10,a);
for(i = 0;i < 10;i++)
printf("%d ",a[i]);
}
写法二:分别定义分组函数和排序函数
#include <stdio.h>

int partitiont(int start,int length,int a[])
{
int x = a[start];
int i,j;
i = start;
j = length -1;
while(i < j)
{
if(x < a[j])
j--;
else if(x > a[j])
{
a[i] = a[j];
a[j] = x;
i++;
}
else if(x < a[i])
{
a[j] = a[i];
a[i] = x;
j--;
}
else
i++;
}
return i;
}
void Qsort(int start,int length,int a[])
{
int q = partition(start,length,a);
if(start < length-1)
{
Qsort(start,q,a);
Qsort(q+1,length,a);
}
}
void main()
{
int a[10] = {8,7,3,4,2,9,11,6,5,10};
int i;
Qsort(0,10,a);
for(i = 0;i < 10;i++)
printf("%d ",a[i]);
}

热心网友 时间:2023-11-17 19:46

快速排序,给出两种写法,
写法一:分组和排序放在一起
#include <stdio.h>
void Qsort(int start,int length,int a[])
{
int x = a[start];
int i,j;
i = start;
j = length -1;
while(i < j)
{
if(x < a[j])
j--;
else if(x > a[j])
{
a[i] = a[j];
a[j] = x;
i++;
}
else if(x < a[i])
{
a[j] = a[i];
a[i] = x;
j--;
}
else
i++;
}
if(start < length-1)
{
Qsort(start,i,a);
Qsort(i+1,length,a);
}
}
void main()
{
int a[10] = {8,7,3,4,2,9,11,6,5,10};
int i;
Qsort(0,10,a);
for(i = 0;i < 10;i++)
printf("%d ",a[i]);
}
写法二:分别定义分组函数和排序函数
#include <stdio.h>

int partitiont(int start,int length,int a[])
{
int x = a[start];
int i,j;
i = start;
j = length -1;
while(i < j)
{
if(x < a[j])
j--;
else if(x > a[j])
{
a[i] = a[j];
a[j] = x;
i++;
}
else if(x < a[i])
{
a[j] = a[i];
a[i] = x;
j--;
}
else
i++;
}
return i;
}
void Qsort(int start,int length,int a[])
{
int q = partition(start,length,a);
if(start < length-1)
{
Qsort(start,q,a);
Qsort(q+1,length,a);
}
}
void main()
{
int a[10] = {8,7,3,4,2,9,11,6,5,10};
int i;
Qsort(0,10,a);
for(i = 0;i < 10;i++)
printf("%d ",a[i]);
}

热心网友 时间:2023-11-17 19:47

#include<stdio.h>
main()
{
int i,j,a[100],t,n,sum=0;
printf("How many numbers do you want to order?\n");
scanf("%d",&n); //输入你想排的数的个数
printf("please input %d numbers to order:\n",n);
for(j=1;j<=n;j++)
scanf("%d",&a[j-1]);
for(i=1;i<n;i++)
for(j=n-1;j>0;j--)
if(a[j-1]>a[j])
{
t=a[j-1];
a[j-1]=a[j];
a[j]=t;
sum++; //统计循环次数
}
for(j=1;j<=n;j++)
printf("%d ",a[j-1]);
printf("\n");
printf("Total cycle is %d",sum); //输出循环次数
getch();
}

热心网友 时间:2023-11-17 19:47

#include<stdio.h>
main()
{
int i,j,a[100],t,n,sum=0;
printf("How many numbers do you want to order?\n");
scanf("%d",&n); //输入你想排的数的个数
printf("please input %d numbers to order:\n",n);
for(j=1;j<=n;j++)
scanf("%d",&a[j-1]);
for(i=1;i<n;i++)
for(j=n-1;j>0;j--)
if(a[j-1]>a[j])
{
t=a[j-1];
a[j-1]=a[j];
a[j]=t;
sum++; //统计循环次数
}
for(j=1;j<=n;j++)
printf("%d ",a[j-1]);
printf("\n");
printf("Total cycle is %d",sum); //输出循环次数
getch();
}
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
VIVO手机的右上角出现HD怎么关掉 QQ宠物死了怎么才能复活那,还魂丹能不能赠送给我的好友吗?? q宠死了怎么办 我的建行卡掉了怎么办 ...上点了外卖,商家已经接单了,可是过一会看店面已经打烊了,所以是明天... ...可是过一会看店面已经打烊了,这种情况会送过来吗? 四川农业大学林学院学院概况 成都有哪些科研所 成都农科院有哪些分院 成都市农林科学院基本信息 若想分别测定钙硬和镁硬应如何进行自来水总硬度的测定 使氧化镁坚硬的溶剂 在锥形瓶中放50ml水样,加入氯化铵缓冲液2ml,加入3滴铬黑T指示剂,用EDTA滴定,谁的硬度是多少,公式是? 如何提高镁球的硬度 用edta法测定水的硬度时,可以直接测定镁硬么 在配合物测定法测定水的硬度中,如何测得镁的硬度 若想分别测定钙硬和镁硬应如何进行 晒太阳补钙吗要晒多久 晒太阳补钙吗 晒多长时间为宜 一天晒多久太阳能补钙 镍矿的选矿加工 小米4 win10死机了怎么办 小米平板2win10版开不了机,求帮助 文昌门外坐几路到昆明湖公园 新农合350存到哪了 2022年新农合缴费350还要加10元保险费吗 小米4电源键坏了,太敏感轻轻一碰就不断重启,不停重启,现在都不敢 如何把支付宝的钱转到银行卡上 收到offer不去怎么回复 怎么回复收到offer不去 拒绝offer怎么回复 英语作文我的坏习惯120字左右 安抚奶嘴适合多大的宝宝 汽车洗涤液是不是玻璃水? 汽车的“五油三液”是什么?多久更换一次? 求几款不用鼠标玩的单机游戏?(win7) 女孩说喜欢你,已经病入膏肓了是什么意思? 女孩子对你说已经病入膏肓了,代表已经爱上你了是吧? 已经入了膏肓是什么意思 愿多年以后你病入膏肓因思我成疾什么意思 留滞的词语解释 加拿大领土面积世界第二, 为何军队数量却很少? 移民加拿大之前一定要知道的事情有哪些呢? 加拿大拥有全球公认的北美教育体系,加拿大本科申请有哪些步骤? 加拿大droid2 global 苹果x有广角拍照功能吗 小米手机屏幕外凸长时间不修复有什么危害 做四喜烤麸需不需要焯水 二建一般什么时候考试 手机老是说帐号错误,不存在帐号是怎么回事呢? 登录不了,登录显示账号不存在是什么回事?
  • 焦点

最新推荐

猜你喜欢

热门推荐