9、【常见算法】数组重排

长度为n的数组乱序存放着 0 至n-1. 现在只能进行 0 与其他数的swap,请设计并实现排序。

 1 //长度为n的数组乱序存放着 0 至n-1. 现在只能进行 0 与其他数的swap,请设计并实现排序。
 2 #include <iostream>
 3 
 4 using namespace std;
 5 
 6 void Sort(int *arr, int len)
 7 {
 8     for(int i = 0; i < len; i++)
 9     {
10         if(arr[i] != i)
11         {
12             swap(arr[0], arr[i]);
13             while(arr[0] != 0)
14             {
15                 swap(arr[0], arr[arr[0]]);
16             }
17         }
18     }
19 }
20 
21 void printArray(int *arr, int len)
22 {
23     if(!arr || len < 0)
24         cout << "Invalid Input" << endl;
25     for(int i = 0; i < len; i++)
26     {
27         cout << arr[i] << "	";
28     }
29     cout << endl;
30 }
31 
32 int main()
33 {
34     const int MAX = 5;
35     int arr[MAX] = {0, 2, 1, 4, 3};
36 
37     printArray(arr, MAX);
38     Sort(arr, MAX);
39     printArray(arr, MAX);
40 
41     return 0;
42 }
原文地址:https://www.cnblogs.com/Long-w/p/9796435.html