自然数数组的排序

自然数数组的排序

http://www.nowcoder.com/questionTerminal/c7d5def10ad942629df21483c89118df

#include <iostream>
#include <vector>
using namespace std;

void swap(vector<int> &arr, int p1, int p2)
{
    int tmp = arr[p1];
    arr[p1] = arr[p2];
    arr[p2] = tmp;
}

int main()
{
    int N;
    cin >> N;

    vector<int> arr(N);
    for(int i = 0; i < N; i++)
        cin >> arr[i];

    // 排序
    int p = 0;
    for(int i = 0; i < N; i++)
    {
        if (arr[i] != i + 1)
        {
            swap(arr, i, arr[i]-1);
            i--;
        }
    }

    for(int i = 0; i < N; i++)
        cout << arr[i] << " ";
    return 0;
}

注意!此信息未认证,请谨慎判断信息的真实性!

全部评论
空

相关内容推荐

头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 收藏 评论
分享

全站热榜

正在热议