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

📄 sort_pointer.cpp

📁 做为SD0609的一员,我扎实的基础是如何打出来的,来看看我那时连猴子选大王都不会的人,是如何成长起来的吧!主要包括我所做的C++,JAVA基础联系.乱是乱了点,不过如果真心想学习,打好基础,看看也不
💻 CPP
字号:
/************************************************
* 动态数组排序演示程序
* 达内,陈宗权,2006/8
************************************************/
#include <iostream>
using namespace std;

int getNumber();//取得数据个数
void input( int*, int );//输入
void output( int*, int );//输出
bool getChioice();//选择升降序
void sort( int*, int, int(*)(int*, int*) );
int compA( int*, int* );//升序比较
int compD( int*, int* );//降序比较
void swap( int*, int* );//交换

int main()
{
    int n = getNumber();
    int *p = new int[n];//申请空间
    if( p==NULL ){//失败处理
       cout << "no enough memory" << endl;
       return 0;
    }
    input( p, n );//输入n个数
    output( p, n );//输出这n个数
    if( getChioice() )
        sort( p, n, compA );//升序排序
    else
        sort( p, n, compD );//降序排序
    output( p, n );//输出排序结果
    delete[] p;//释放内存空间
    return 0;
}

int getNumber()
{
    int n;
    cout << "input the number of integers:";
    cin >> n;//输入数据个数
    return n;
}

void input( int* ap, int num )
{
    cout << "input " << num << " integers:" << endl;
    for( int i=0; i<num; i++ )
        cin >> *ap++;
}

void output( int* ap, int num )
{
    cout << num << " data: ";
    for( int i=0; i<num; i++ )
        cout << *ap++ << ' ';
    cout << endl;
}

bool getChioice()
{
    cout << "a-Ascend, other-Descend\n";
    cout << "please choose:";
    char ch;
    cin >> ch;
    return ch=='a'||ch=='A';
}

void sort( int* ap, int num, int(*fp)(int*,int*) )
{//排序调用指定比较函数来比较两个数据
    for( int i=0; i<num; i++ )
        for( int j=0; j<i; j++ )
            if( fp( ap+j, ap+i ) > 0 )
                swap( ap+j, ap+i );
}

int compA( int *p1, int* p2 )
{
    return *p1-*p2;
}

int compD( int*p1, int*p2 )
{
    return *p2-*p1;
}

void swap( int *p1, int *p2 )
{
    int temp = *p1;
    *p1 = *p2;
    *p2 = temp;
}

⌨️ 快捷键说明

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