数据结构,算法,C/C++,编程实现中间数和中位数的查找!给定很多比如300万个整数,找出排序后(1)中间大小的数、(2)中间位置的数!例如给定5,4,1,1,1,1,1,2,3,排序后是1,1,1,1,1,2,3,4,5.中间大小的数
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/01 06:21:26
![数据结构,算法,C/C++,编程实现中间数和中位数的查找!给定很多比如300万个整数,找出排序后(1)中间大小的数、(2)中间位置的数!例如给定5,4,1,1,1,1,1,2,3,排序后是1,1,1,1,1,2,3,4,5.中间大小的数](/uploads/image/z/5907789-45-9.jpg?t=%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%2C%E7%AE%97%E6%B3%95%2CC%2FC%2B%2B%2C%E7%BC%96%E7%A8%8B%E5%AE%9E%E7%8E%B0%E4%B8%AD%E9%97%B4%E6%95%B0%E5%92%8C%E4%B8%AD%E4%BD%8D%E6%95%B0%E7%9A%84%E6%9F%A5%E6%89%BE%21%E7%BB%99%E5%AE%9A%E5%BE%88%E5%A4%9A%E6%AF%94%E5%A6%82300%E4%B8%87%E4%B8%AA%E6%95%B4%E6%95%B0%2C%E6%89%BE%E5%87%BA%E6%8E%92%E5%BA%8F%E5%90%8E%EF%BC%881%EF%BC%89%E4%B8%AD%E9%97%B4%E5%A4%A7%E5%B0%8F%E7%9A%84%E6%95%B0%E3%80%81%EF%BC%882%EF%BC%89%E4%B8%AD%E9%97%B4%E4%BD%8D%E7%BD%AE%E7%9A%84%E6%95%B0%21%E4%BE%8B%E5%A6%82%E7%BB%99%E5%AE%9A5%2C4%2C1%2C1%2C1%2C1%2C1%2C2%2C3%2C%E6%8E%92%E5%BA%8F%E5%90%8E%E6%98%AF1%2C1%2C1%2C1%2C1%2C2%2C3%2C4%2C5.%E4%B8%AD%E9%97%B4%E5%A4%A7%E5%B0%8F%E7%9A%84%E6%95%B0)
数据结构,算法,C/C++,编程实现中间数和中位数的查找!给定很多比如300万个整数,找出排序后(1)中间大小的数、(2)中间位置的数!例如给定5,4,1,1,1,1,1,2,3,排序后是1,1,1,1,1,2,3,4,5.中间大小的数
数据结构,算法,C/C++,编程实现中间数和中位数的查找!
给定很多比如300万个整数,找出排序后(1)中间大小的数、(2)中间位置的数!
例如给定5,4,1,1,1,1,1,2,3,排序后是1,1,1,1,1,2,3,4,5.中间大小的数是3(共1,2,3,4,5五个数)
中间位置的数是1,(总共9个数,第五个位置是1)
int findMiddleValue(int input[N]);
int findMiddlePosition(int input[N]);
数据结构,算法,C/C++,编程实现中间数和中位数的查找!给定很多比如300万个整数,找出排序后(1)中间大小的数、(2)中间位置的数!例如给定5,4,1,1,1,1,1,2,3,排序后是1,1,1,1,1,2,3,4,5.中间大小的数
#include
#include
#include
#define CutOff (3)
#define NN 1000
typedef int ElementType;
int Swap(ElementType *x,ElementType *y)
{
ElementType tmp=*x;
*x=*y;
*y=tmp;
return 0;
}
/*插入排序*/
int InsertionSort(ElementType A[],int N)
{
int j,P;
ElementType tmp;
for(P=1;P0 && A[j-1]>tmp;j--)
A[j]=A[j-1];
A[j]=tmp;
}
return 0;
}
ElementType Median3(ElementType A[],int Left,int Right)
{
int Center=(Left+Right)/2;
if(A[Left]>A[Center])
Swap(&A[Left],&A[Center]);
if(A[Left]>A[Right])
Swap(&A[Left],&A[Right]);
if(A[Center]>A[Right])
Swap(&A[Center],&A[Right]);
Swap(&A[Center],&A[Right-1]);
return A[Right-1];
}
/*快速排序核心算法*/
int QSort(ElementType A[],int Left,int Right)
{
int i,j;
ElementType Pivot;
if(Left+CutOff