美文网首页
数组换位

数组换位

作者: QinRenMin | 来源:发表于2018-07-07 13:29 被阅读0次

将一个数组长度为n,从位置k开始,交换a[0:k-1]与a[k:n-1]的位置,得到新的数组。
例如,输入 5(数组长度) 3(第三个数字) 3 4 5 6 1
得到交换后的结果是:6 1 3 4 5

  • 解题思路
    将数组进行在某个位置转置,则先将每一部分转置,再将整体换位
    上面的示例可以为:
    3 4 5 --> 5 4 3
    6 1 ---> 1 6
    5 4 3 1 6 --> 6 1 3 4 5(5\6互换 4\1互换)

具体代码如下:

#include<stdio.h>
//转置数组 
void sort(int a[], int low, int high){
    int temp;
    while(low < high)
    {
        temp = a[low];
        a[low++] = a[high];
        a[high--] = temp;
    }
}
void main()
{
    printf("请输入数组长度");
    int i,k,num;
    scanf("%d",&num);
    int a[num];
    printf("请输入数据\n");
    for(i = 0; i < num; i++)
    {
        scanf("%d",&a[i]);
    }
    printf("请输入要转置K的位置\n");
    scanf("%d",&k);
    sort(a,0,k-1);
    sort(a,k,num-1);
    sort(a,0,num-1);
    for(i = 0; i < num; i++)
    {
            printf("%d ", a[i]);
    }
    printf("\n");

}
运行结果

相关文章

  • 数组换位

    将一个数组长度为n,从位置k开始,交换a[0:k-1]与a[k:n-1]的位置,得到新的数组。例如,输入 5(数组...

  • 此数组想保留彼数组的数据,可通过push()方法。

    方法1.数组换位。 方法2:for of循环遍历。

  • js实现上移、下移、置顶、置底功能

    1.使用数组splice方法交换位置实现上移、下移功能2.使用数组splice、unshift、push方法实现置...

  • 冒泡排序

    1、基本思想:将数组中元素依次与其相邻元素比较,如果arr[j]>a[j ++]就调换位置2、特性:频繁改变数组位...

  • 10大排序算法梳理,附动图

    算法与实现 选择排序 算法思想 从数组中选择最小元素,将它与数组的第一个元素交换位置。再从数组剩下的元素中选择出最...

  • (IOS)数组元素交换位置

    列:数组元素最后一位和倒数第二位交换位置 [_dataSource exchangeObjectAtIndex:_...

  • 2018-09-12 888. Fair Candy Swap

    题意:给你两个数组,从两个数组中各选一个数交换位置,新得到的两个数组的元素总和相等。思路一:先得到两个数组各自的元...

  • 前端笔试程序题

    假如有一个数组[1,2,3,4,5,6],封装一个方法将数组奇偶换位[2,1,4,3,6,5]。 有一个数组A[1...

  • 数组中插入一个元素

    数组两项元素交换位置 把数组里的某一项移动到某一位置(常见拖拽的时候drop函数里用)

  • 前端面试笔试程序题

    1,假如有一个数组[1,2,3,4,5,6],封装一个方法将数组奇偶换位[2,1,4,3,6,5]。 functi...

网友评论

      本文标题:数组换位

      本文链接:https://www.haomeiwen.com/subject/hydwuftx.html