作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/24 09:27:59
利用C语言帮我分别利用 Bubble sort 及 Quick sort 两种的方法写分别各写一个排列的程式码
利用c语言分别以bubble sort及quick sort各写排列,最后还要建立一个文件,文件内随意输入数字,因为在执行期间时,需要输入文件路径,然后排列文件内的数字,所以一大段的程式码当中必须包括输入文件路径的程式码及 bubble sort 和 quick sort 各的程式码,因为尽快要交了
利用C语言帮我分别利用 Bubble sort 及 Quick sort 两种的方法写分别各写一个排列的程式码
分析:
冒泡排序(bubble sort)的思想是在每一次排序过程,通过相邻元素的交换,将当前没有排好序中的最大(小)移到数组的最右(左)端.而选择排序的思想也很直观:每一次排序过程,我们获取当前没有排好序中的最大(小)的元素和数组最右(左)端的元素交换,循环这个过程即可实现对整个数组排序,其算法的时间复杂度为O(N^2)
而快速排序(quick sort)使用的是分治的思想,先选定一个值,再将比这个值小的元素放在它的左(右)边,将比它大的放在另一边;然后在左边的元素中再找一个值,重复上面的操作;在右边也进行相同的操作,最后整个数组就会被排好顺序了,这个算法的时间复杂度为O(NLOGN),但是很不稳定.
下面是程序:
#include
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