VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2999|回复: 13

如何用C++解决排序问题????

[复制链接]

3

主题

3

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-6 14:40:01 | 显示全部楼层 |阅读模式
有整数序列{5,6,3,8,3,9,7,2,1,4,0},编程由大到小排序,打印排序后信息

结果是:9 8 7 6 5 4 3 2 1 0

谢谢~~~~
回复

使用道具 举报

0

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-6 16:45:01 | 显示全部楼层
参见C语言的QSort函数
回复

使用道具 举报

0

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-9 17:18:01 | 显示全部楼层
冒泡吧,最简单的
回复

使用道具 举报

0

主题

41

帖子

28.00

积分

新手上路

Rank: 1

积分
28.00
发表于 2020-1-9 21:45:01 | 显示全部楼层
#include <functional>
#include <algorithm>
using namespace std;
int main(int argc, char* argv[])
{
        int sz[] = {5,6,3,8,3,9,7,2,1,4,0};
        sort(sz,sz+sizeof(sz)/sizeof(sz[0]),greater<int>() );
        return 0;
}
回复

使用道具 举报

0

主题

9

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-7-4 11:30:02 | 显示全部楼层
去看看《数据结构》《算法》方面的书再说。
回复

使用道具 举报

2

主题

20

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
发表于 2020-7-5 13:45:01 | 显示全部楼层
如果不考虑执行效率的话,冒泡或者简单选择排序是最简单的
如果考虑效率的话就要用快速排序或者是希尔排序,堆排序等
回复

使用道具 举报

0

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-7-12 19:45:01 | 显示全部楼层
随便找找就可以找到,数据结构的书上肯定会有的。
自己要写一个也不难。

#include <iostream>
using namespace std;

#define SUM 10

template <class T>
void Sort(T a[], int N)
{
        for(int i=0; i<N-1; i++){
                for(int j=i+1; j<N; j++){
                        if(a[i]<a[j]) swap(a[i], a[j]);
                }
        }

}
int main()
{
        int a[]={5,6,8,3,9,7,2,1,4,0};
        Sort(a, SUM);
        for(int i=0; i<10; i++)
                cout << a[i] << "  ";

        return 0;
}
回复

使用道具 举报

2

主题

54

帖子

34.00

积分

新手上路

Rank: 1

积分
34.00
发表于 2020-7-12 20:45:01 | 显示全部楼层
sort()泛型算法
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-7-16 09:30:02 | 显示全部楼层

void sort(int *a,int n)
{
    a[10]={{5,6,3,8,3,9,7,2,1,4,0};
    for(int i=1;i<10;i++)
    {  
       int k=i-1;
       for(j=k;j<10;j++)  if(a[k]<a[j]) k=j;
       int temp=a[i];a[i]=a[k];a[k]=temp;
    }
}
  
回复

使用道具 举报

0

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-7-16 11:00:01 | 显示全部楼层
int swap(int A[], int n)
{
   int i, j, temp;
   for(i = 0; i < n; i++)
      for(j = i + 1; j < n - 1; j ++)
          if(A[i]<A[j])
               {
                 temp = A[j] ;
                 A[i] = A[j] ;
                 A[j] = temp ;
                }
  return 1 ;
}

main ()
{
   int A[10] ;
   swap(A, 10) ;
   for(int i = 0 ;i < 10; i++ )
     printf("%d, ", A[i]) ;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表