【线性代数】求逆序数

【线性代数】求逆序数

 1 #include<iostream>
2 using namespace std;
3 //求逆序数
4 //默认逆序排序的标准序列为:由小到大
5 class reversed_order
6 {
7 public :
8 void num(int newN);
9 private:
10 int array_Num[11],temp,numb,result;
11 };
12 void reversed_order::num(int newN)
13 {
14 temp=newN;
15 //将数字的每一位由低位到高位存入数组 注意数组是从低位到高位存入数组的
16 for(int i=0;temp!=0;i++)
17 {
18 array_Num[i]=temp%10;
19 temp=temp/10;
20 numb=i;//记录数组的终止地址 局部变量i省内存
21 }
22 //数组中存储的数字是从地位到高位存入数组的
23 for(int i=0;i<numb/2+1;i++)
24 {
25 temp=array_Num[numb-i];
26 array_Num[numb-i]=array_Num[i];
27 array_Num[i]=temp;
28 }
29 //计算逆序数
30 result=0;
31 for(int i=1;i<=numb;i++)
32 {
33 for(int j=0;j<i;j++)
34 {
35 if(array_Num[i]<array_Num[j])
36 {
37 result++;
38 }
39 }
40 }
41 cout<<result;
42 }
43 int main()
44 {
45 int N;
46 cout<<”请输入要求逆序数的序列”<<endl;
47 cout<<”请输入0-9数字 保证没有数字重复 否则出错!”<<endl;
48 cin>>N;
49 reversed_order reAb;
50 reAb.num(N);
51 system(“pause”);
52 return 0;
53 }



转载于:https://www.cnblogs.com/cplushua/archive/2011/11/15/2249602.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值