码迷,mamicode.com
首页 > 编程语言 > 详细

需要排序的最短子数组长度

时间:2016-08-23 21:47:39      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:

要求: 给定一个无序数组arr,求出需要排序的最短子数组长度

技术分享
 1 // getMinLength.cpp : 定义控制台应用程序的入口点。
 2 //
 3 
 4 #include "stdafx.h"
 5 #include <iostream>
 6 
 7 using namespace std;
 8 
 9 void getMinLength(int arr[],int len)
10 {
11     if(len == 0)
12         return;
13 
14     //从后往前找到最小值,并记录最小值左边比它大的数的范围
15     int noMinIndex = -1;
16     int minNum = arr[len - 1];
17     for(int i = len -2;i > -1;i--)
18     {
19         if(arr[i] > minNum)
20             noMinIndex = i;
21         else
22             minNum = min(minNum,arr[i]);
23     }
24 
25     if(noMinIndex == -1)
26         return;
27 
28 
29     //从前往后找一个极大值,并找到该极大值右边比它小的最远范围
30     int noMaxIndex = -1;
31     int maxNum = arr[0];
32     for(int i =1;i < len;i++)
33     {
34         if(arr[i] < maxNum)
35             noMaxIndex = i;
36         else
37             maxNum = max(arr[i],maxNum);
38     }
39 
40     cout<<noMinIndex<<" ---"<<noMaxIndex<<"  :"<<noMaxIndex-noMinIndex+1<<endl;
41 }
42 
43 int _tmain(int argc, _TCHAR* argv[])
44 {
45     int arr[] = {1,5,3,4,2,6,7};
46     int len = 7;
47     getMinLength(arr,len);
48     system("pause");
49     return 0;
50 }
View Code

 

需要排序的最短子数组长度

标签:

原文地址:http://www.cnblogs.com/lp3318/p/5800811.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!