⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 merge.cpp

📁 基于C++的排序各种排序操作,包括快速排序,shell排序,随机排序,选择排序等
💻 CPP
字号:
#include<stdio.h>
void select_sort(int[],int);
void merge_sort(int[],int[],int[],int,int);
void main()
{
	int data1[10],data2[10],data3[20];
	int size1=0,size2=0,i;
	/*要求输入两组数据作归并*/
	printf("Please enter data 1 to sort(enter 0 when end):\n");
	printf("Number:");
	do
	{
		scanf("%d",&data1[size1]);
	}while(data1[size1++]!=0);
	printf("Please enter data 2 to sort(enter 0 when end):\n");
	printf("Number:");
	do
	{
		scanf("%d",&data2[size2]);
	}while(data2[size2++]!=0);
	/*先使用选择排序将两组数据排序,再作归并*/
	select_sort(data1,--size1);
	select_sort(data2,--size2);
	for(i=0;i<60;i++) printf("-");
	printf("\nData 1:");
	for(i=0;i<size1;i++)
		printf("%d ",data1[i]);
	printf("\n");
    printf("Data 2:");
    for(i=0;i<size2;i++)
		printf("%d ",data2[i]);
	printf("\n");
	for(i=0;i<60;i++) printf("-");
	printf("\n");
	merge_sort(data1,data2,data3,size1,size2);
	for(i=0;i<60;i++) printf("-");
	printf("\nSorting:");
	for(i=0;i<size1+size2;i++)
		printf("%d ",data3[i]);
}

void select_sort(int data[],int size)
{
	int base,compare,min,temp;
	for(base=0;base<size-1;base++)
	{
		min=base;
		for(compare=base+1;compare<size;compare++)
			if(data[compare]<data[min])
				min=compare;
			temp=data[min];
			data[min]=data[base];
			data[base]=temp;
	}
}

void merge_sort(int data1[],int data2[],int data3[],int size1,int size2)
{
	int arg1,arg2,arg3,i;
	data1[size1]=32767;
	data2[size2]=32767;
	arg1=0;
	arg2=0;
	for(arg3=0;arg3<size1+size2;arg3++)
	{ /*比较两组数据,数据小的先存于归并后的数列*/
		if(data1[arg1]<data2[arg2])
		{
			data3[arg3]=data1[arg1];
			arg1++;
		}
		else
		{
			data3[arg3]=data2[arg2];
			arg2++;
		}
		printf("Access:");
		for(i=0;i<arg3+1;i++)
			printf("%d ",data3[i]);
        printf("\n");
	}
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -