【问题描述】
实现冒泡排序、快速排序。
【输入形式】
输入2组待排序序列。
第一行为待冒泡排序数据个数n,
第二行为待冒泡排序的n个数据;
第三行为待快速排序数据个数m,
第四行为待快速排序的m个数据。
【输出形式】
输出分别使用冒泡排序、快速排序的排序结果。
【样例输入】
5
7 3 5 0 -9
6
2 4 6 3 4 2
【样例输出】
bubbleSort:
-9 0 3 5 7
quickSort:
2 2 3 4 4 6
【样例说明】
【评分标准】注意:请使用题目指定方法排序,其他方法实现的排序不得分。
#include
#include
#define MAX 1000void bubbleSort(int list[], int n)
{
int i=1,j,t,flag=1;
for(i=1;i
flag=0;
for(j=1;j<=n-1;j++){
if(list[j]>list[j+1]){
t=list[j];
list[j]=list[j+1];
list[j+1]=t;
flag=1;
}
}
}
}int Partition(int list[],int left,int right)
{
int pivotkey;
list[0]=list[left];
pivotkey=list[left];
while(left
while(left=pivotkey){
--right;
}
list[left]=list[right];
while(left
++left;
}
list[right]=list[left];
}
list[left]=list[0];
return left;
}void quickSort(int list[],int low,int high)
{
int pivotloc;
if(low
pivotloc=Partition(list,low,high);
quickSort(list,low,pivotloc-1);
quickSort(list,pivotloc+1,high);
}
}
void printList(int list[], int n)
{
int i;
for(i=1;i<=n;i++){
printf("%d ",list[i]);
}
}
int main()
{
int i,n,list[100];
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d",&list[i]);
}
bubbleSort(list,n);
printf("bubbleSort:\n\n");
printList(list,n);
printf("\n");
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d",&list[i]);
}
quickSort(list,1,n);
printf("quickSort:\n\n");
printList(list,n);
printf("\n");
return 0;
}
上一篇:软件工程选择与判断题
下一篇:编译opencv自带例子