ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

选择排序(C++)

2022-01-31 18:33:31  阅读:159  来源: 互联网

标签:int len height 选择 163 C++ test 排序 low


从前有个王国,国王骄奢无度,贪图女色,后宫佳丽三千,但还是动用大量财力物力在全国范围内招妃纳妾,浸淫于女色之中。 又是一年的选妃开始,今年国王对身高比较敏感,要求这些候选者按照从低到高的顺序排列,供其选择。。。 宫廷首席太监小桂子于是命令所有小公公把宫女的身高都量出来并上报到他处,然后命令身为太监伴读小书童的你帮他按身高大小排好序, 数据如下:

 

使用指针交换数据

void swap(int* num1, int* num2)
{
    int test;
    test = *num1;
    *num1 = *num2;
    *num2 = test;
}

非指针交换并排序(低到高)

void lowtoheight(int height[],int len)
{
    int test = 0;
    for (int i = 0; i < len; i++)
    {
        for (int j = i + 1; j < len; j++)
        {
            if (height[i] > height[j])
            {
                //交换身高
                test = height[i];
                height[i] = height[j];
                height[j] = test;
            }
        }
    }
}

指针交换(高到低)

void heighttolow(int low[], int len)
{
    int test = 0;
    for (int i = 0; i < len; i++)
    {
        for (int j = i + 1; j < len; j++)
        {
            if (low[i] < low[j])
            {
                //交换身高
                /*test = low[i];
                low[i] = low[j];
                low[j] = test;*/
                swap(&low[i], &low[j]);
            }
        }
    }
}
int main(void)
{
    int height[] = { 163, 161, 158, 165, 171, 170, 163, 159, 162 };

    int len = sizeof(height) / sizeof(height[0]);//长度

    lowtoheight(height, len);
    for (int i = 0; i < len; i++)
    {
        cout << height[i] << endl;
    }
    cout << "---------------------------------------" << endl;
    heighttolow(height, len);
    
    for (int i = 0; i < len; i++)
    {
        cout << height[i] << endl;
    }
    
    cin.get();
    return 0;
}

 交换后:

158 159 161 162 163 163 165 170 171
---------------------------------------
171 170 165 163 163 162 161 159 158

标签:int,len,height,选择,163,C++,test,排序,low
来源: https://www.cnblogs.com/WU20/p/15858473.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有