| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 624 人关注过本帖
标题:怎样用选择法对十个数进行排序
只看楼主 加入收藏
文江
Rank: 2
等 级:论坛游民
帖 子:77
专家分:20
注 册:2015-8-17
结帖率:100%
收藏
已结贴  问题点数:14 回复次数:2 
怎样用选择法对十个数进行排序
//前面的不知道



for (i=1;i<=10;i++) scanf("%d",&data[i]));
for(i=1;i<=9;i++)  {
    post=i;
    for(j=i+1;j<=10;j++)
        if(data[j]<data[post])post=j;
        if(post!=i){
            t=data[i];data[i]=data[post];data[post]=t;
        }
}

//后面的也不知道
2015-09-02 20:31
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:7 
写了一个模板

程序代码:
// ConsoleProgramTest.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

#include <time.h>
#include <stdlib.h>

#define NUMBER  1000

/*

 * 打印数组

 */
void print(int *array, int size)
{
    for (int i = 0;i < size;i++)
    {
        printf_s("%5d", *(array + i));
    }
    printf_s("\n");
}

/*

 * 使用随机数初始化数组

 */
void InitArray(int *array, int size)
{
    srand(time(0));
    for (int i = 0;i < size;i++)
    {
        *(array + i) = rand() % NUMBER;
    }
}


void ChooseMaxNSort(int *array, const int maxNum, const int size)
{
    for (int i = 0;i < maxNum;i++)
    for (int j = i + 1;j < size;j++)
    {
        if (*(array + i) < *(array + j))
        {
            int tmpValue = *(array + i);
            *(array + i) = *(array + j);
            *(array + j) = tmpValue;
        }
    }
}

/*

 * 主函数

 */
int _tmain(int argc, _TCHAR* argv[])
{
    const int size = 20;
    int ans[size] = { 0 };

    InitArray(ans, sizeof(ans) / sizeof(int));

    printf_s("排序前:\n");
    print(ans, sizeof(ans) / sizeof(int));

    // 选择排序
    ChooseMaxNSort(ans, 10, size);

    printf_s("排序前:\n");
    print(ans, sizeof(ans) / sizeof(int));

    return 0;
}



[fly]存在即是合理[/fly]
2015-09-03 19:21
qq1625127317
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:185
专家分:450
注 册:2015-9-3
收藏
得分:7 
函数形式:
void select_sort(int * p, int n)
{
     int i,j,k,t;
     for(i = 0;i < n - 1;i++)
     {
        k = i;
        for(j = i+ 1;j < n;j++ )
        if(*(p + j) < *(p + k))k = j;
        t = *(p + k);*(p + k) = *(p + i);*(p + i) = t;
     }
}

静坐常思己过,闲谈莫论人非
2015-09-04 08:37
快速回复:怎样用选择法对十个数进行排序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018822 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved