• 第十六周项目1-数组的排序指针版


    按给定部分程序的要求,用指向数组的指针变量作为形式参数编写函数,完成排序。
    (1)排序算法,可以是冒泡,也可以是选择
    (2)用指向数组的指针变量作为形式参数,用数组名(即数组的地址)作为实际参数,函数中对于形参的改变实质上也就是对实参对应内存单元的改变;

    (3)形式参数中不指定数组大小,实际数组的大小也一并作为参数传递。

    (4)使用降序的规则排列数组。

    冒泡排序版:

    /*
    * Copyright (c) 2014,烟台大学计算机学院
    * All right reserved.
    * 作者:邵帅
    * 文件:temp.cpp
    * 完成时间:2014年12月7日
    * 版本号:v1.0
    */
    #include <iostream>
    using namespace std;
    void sort(int *p, int num);
    void output(int*, int);   
    int main( )
    {	int a[20]={86,46,22,18,77,45,32,80,26,88,57,67,20,18,28,17,54,49,11,16};
    	int b[15]={27,61,49,88,4,20,28,31,42,62,64,14,88,27,73};
    	sort(a,20);
    	output(a,20);
    	sort(b,15);
    	output(b,15);
    	return 0;
    }
    void sort(int *p, int num)
    {
        int i,j,t;
        for (j=0;j<num-2;j++) //进行num-1次循环
            for (i=0;i<num-j-1;i++) //进行num-j次比较
                if (*(p+i+1)>*(p+i))
                {
                  t=*(p+i);*(p+i)=*(p+i+1);*(p+i+1)=t;
                }
    }
    void output(int*p, int num)
    {
        int i;
        for (i=0;i<num;i++)
            cout<<*(p+i)<<" ";
        cout<<endl;
    }

    选择排序版:

    /*
    * Copyright (c) 2014,烟台大学计算机学院
    * All right reserved.
    * 作者:邵帅
    * 文件:temp.cpp
    * 完成时间:2014年12月7日
    * 版本号:v1.0
    */
    #include <iostream>
    using namespace std;
    void sort(int *p, int num);
    void output(int*, int);
    int main( )
    {	int a[20]={86,46,22,18,77,45,32,80,26,88,57,67,20,18,28,17,54,49,11,16};
    	int b[15]={27,61,49,88,4,20,28,31,42,62,64,14,88,27,73};
    	sort(a,20);
    	output(a,20);
    	sort(b,15);
    	output(b,15);
    	return 0;
    }
    void sort(int *p, int num)
    {
        int i,j,k,t;
        for(i=0; i<num-1; i++)
        {
            k=i;
            for(j=i+1; j<num; j++)
                if(*(p+j)>*(p+k))
                    k=j;
                {
                  t=*(p+k);*(p+k)=*(p+i);*(p+i)=t;
                }
        }
    }
    void output(int*p, int num)
    {
        int i;
        for (i=0;i<num;i++)
            cout<<*(p+i)<<" ";
        cout<<endl;
    }

    运行结果:



    @ Mayuko

  • 相关阅读:
    vmware安装ubuntu
    加快pip install的速度
    在Dataframe中寻找特定值所在行的行号
    后续:尝试交易策略
    小实验:股票涨幅日间的相关性
    大数据之数据预处理
    并查集
    2020华为杯数学建模B题-RON建模 赛后总结与分析
    二叉树的遍历总结
    几数之和分析,解法,优化和总结
  • 原文地址:https://www.cnblogs.com/mayuko/p/4567597.html
Copyright © 2020-2023  润新知