数据结构与算法——数组

来源:互联网 发布:神武手游多开软件 编辑:程序博客网 时间:2024/06/05 07:31

旋转数组

转自 http://blog.csdn.net/booirror/article/details/43950477

[cpp] view plain copy print?在CODE上查看代码片派生到我的代码片
  1. void rotate(int nums[], int n, int k) {  
  2.     int temp;  
  3.     for (int step = 0; step < k; step++) {  
  4.         temp = nums[n-1];  
  5.         for (int i = n-1; i > 0; --i)  
  6.         {  
  7.             nums[i] = nums[i-1];  
  8.         }  
  9.         nums[0] = temp;  
  10.     }  

2 三次翻转法

转自  http://blog.csdn.net/a1b2c3d4123456/article/details/51536086

题目要求部分反转数组。比如说1,2,3,4,5 翻转后是3,4,5,1,2
即原来有序,反转后2部分各自有序。

<code class="hljs java has-numbering"><span class="hljs-keyword">package</span> arrayTest;<span class="hljs-javadoc">/** * 数组部分反转,使用的是三次反转 *<span class="hljs-javadoctag"> @author</span> duola * */</span><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">reverse</span> {</span>    <span class="hljs-comment">//从指定位置开始反转</span>    <span class="hljs-keyword">private</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">reverse</span>(<span class="hljs-keyword">int</span> [] arr,<span class="hljs-keyword">int</span> from,<span class="hljs-keyword">int</span> to) {            <span class="hljs-keyword">while</span>(from<to){                <span class="hljs-keyword">int</span> tmp=arr[from];                arr[from++]=arr[to];                arr[to--]=tmp;            }    }    <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">main</span>(String [] args) {        <span class="hljs-keyword">int</span>[] test={<span class="hljs-number">1</span>,<span class="hljs-number">2</span>,<span class="hljs-number">3</span>,<span class="hljs-number">4</span>,<span class="hljs-number">5</span>};        reverse(test, <span class="hljs-number">0</span>, <span class="hljs-number">1</span>);        reverse(test, <span class="hljs-number">2</span>, test.length-<span class="hljs-number">1</span>);        reverse(test, <span class="hljs-number">0</span>, test.length-<span class="hljs-number">1</span>);        <span class="hljs-keyword">for</span>(<span class="hljs-keyword">int</span> i=<span class="hljs-number">0</span>;i<test.length;i++){            System.out.print(test[i]);        }       }}</code>

0 0
原创粉丝点击