永发信息网

利用C语言帮我分别利用 Bubble sort 及 Quick sort 两种的方法写分别各写一个排列的程式码

答案:1  悬赏:40  手机版
解决时间 2021-02-01 17:09
利用c语言分别以bubble sort及quick sort各写排列,最后还要建立一个文件,文件内随意输入数字,因为在执行期间时,需要输入文件路径,然后排列文件内的数字,所以一大段的程式码当中必须包括输入文件路径的程式码及 bubble sort 和 quick sort 各的程式码,麻烦各位朋友的帮助,因为尽快要交了
最佳答案
分析:
冒泡排序(bubble sort)的思想是在每一次排序过程,通过相邻元素的交换,将当前没有排好序中的最大(小)移到数组的最右(左)端。而选择排序的思想也很直观:每一次排序过程,我们获取当前没有排好序中的最大(小)的元素和数组最右(左)端的元素交换,循环这个过程即可实现对整个数组排序,其算法的时间复杂度为O(N^2)
而快速排序(quick sort)使用的是分治的思想,先选定一个值,再将比这个值小的元素放在它的左(右)边,将比它大的放在另一边;然后在左边的元素中再找一个值,重复上面的操作;在右边也进行相同的操作,最后整个数组就会被排好顺序了,这个算法的时间复杂度为O(NLOGN),但是很不稳定。
下面是程序:
#include<stdio.h>
void main()
{
int a[1000] ; //存放数字
if ((fp = fopen("X:\...这里是文件夹的名字\你建的文件.txt", "w")) == NULL) {
printf("没有找到文件!\n");
exit(0);
}
printf("输入数组:");
while(i!=-1)
scanf("%d", &a[i]);
fputs(a[i], fp);
fclose(fp);
//读取仿照着上面的写,相反
//分别调用bubblesort算法和quicksort算法
}

int bubblesort(int a[],int p,int r)
{
int x,j,i,temp;
x=a[r]; //直接选取最后个元素划分
i=p-1;
for (j=p;j<r;j++)
{
if (a[j]<=x)
{
i++;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
temp=[i+1];
a[i+1]=a[r];
a[r]=temp;
return i+1;
}

void quicksort(int arr[],int p,int r)
{
int q;
if (p<r)
{
q=partition(arr,p,r);
quicksort(arr,p,q-1);
quicksort(arr,q+1,r);
}
}
希望对你有所帮助!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
福特福克斯冷车加不起油
财位的墙壁上挂一幅招财狗风水怎么样
求高人讲解一下潮汐式过滤器怎么做
饶平海关缉私局地址有知道的么?有点事想过去
证券投资基金的收益来源不包括()。A.资本利
环坐的意思是什么啊?知道的请说下!
潮州海关地址在什么地方,我要处理点事
主板上面的CPU电源插口是8芯的,只插四芯可以
apink的wanna be 的中文歌词
王者荣耀什么是射手位
2000年以后转业到地方的军转干工资怎样套改?
化学谜语(各答一元素) 黄金被盗( ) 两口
伤愍的意思是什么啊?知道的请说下!
网络延迟是怎么回事,以前也有延迟,不过在可
事业单位计提固定资产折旧账务处理正确的是(
推荐资讯
軄贡的意思是什么啊?知道的请说下!
【正是】上面大加下面正是什么字
梦见小男孩吐了自已的肝和心脏
存折丢了 去银行办新卡后还会有之前存折里的
化色五仓的意思是什么啊?知道的请说下!
梦见别人爬树摸鸟蛋给我好多鸟蛋
第五套人民币有收芷价值吗?!
交通信用卡人品值多久更新一次
超低温下酶会不会失活变性?
1000-1500买哪个牌子的笔记本电脑好用?主要
张记搬运怎么去啊,我要去那办事
铁关的意思是什么啊?知道的请说下!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?