int L[]作为参数, 能改变L的值, 不需要引用&
#include <bits/stdc++.h>
using namespace std;
void move ( int L[ ] , int n) {
int temp;
int i = 0 , j = n - 1 ;
temp = L[ i] ;
while ( i< j) {
for ( int k = 0 ; k< n; ++ k) {
cout<< L[ k] << " " ;
}
cout<< endl;
cout<< "L[0]" << L[ 0 ] << endl;
while ( i< j&& L[ j] > temp) -- j;
if ( i< j) {
L[ i] = L[ j] ;
++ i;
for ( int k = 0 ; k< n; ++ k) {
cout<< L[ k] << " " ;
}
cout<< endl;
cout<< "L[0]" << L[ 0 ] << endl;
}
while ( i< j&& L[ i] < temp) ++ i;
if ( i< j) {
L[ j] = L[ i] ;
-- j;
for ( int k = 0 ; k< n; ++ k) {
cout<< L[ k] << " " ;
}
cout<< endl;
cout<< "L[0]" << L[ 0 ] << endl;
}
}
L[ i] = temp;
}
int main ( ) {
int L[ ] = { 7 , 3 , 7 , 2 , 8 , 4 , 7 , 5 , 9 } ;
move ( L, 9 ) ;
for ( auto i: L) {
cout<< i<< " " ;
}
return 0 ;
}
结果
7 3 7 2 8 4 7 5 9
L[ 0 ] 7
5 3 7 2 8 4 7 5 9
L[ 0 ] 5
5 3 7 2 8 4 7 7 9
L[ 0 ] 5
5 3 7 2 8 4 7 7 9
L[ 0 ] 5
5 3 7 2 8 4 7 7 9
L[ 0 ] 5
5 3 7 2 8 4 8 7 9
L[ 0 ] 5
5 3 7 2 8 4 8 7 9
L[ 0 ] 5
5 3 7 2 4 4 8 7 9
L[ 0 ] 5
5 3 7 2 4 7 8 7 9
vector L; 作为参数, 能改变L的值, 不需要引用&
#include <bits/stdc++.h>
using namespace std;
void move ( vector< int > L, int n) {
int temp;
int i = 0 , j = n - 1 ;
temp = L[ i] ;
while ( i< j) {
for ( int k = 0 ; k< n; ++ k) {
cout<< L[ k] << " " ;
}
cout<< endl;
cout<< "L[0]" << L[ 0 ] << endl;
while ( i< j&& L[ j] > temp) -- j;
if ( i< j) {
L[ i] = L[ j] ;
++ i;
for ( int k = 0 ; k< n; ++ k) {
cout<< L[ k] << " " ;
}
cout<< endl;
cout<< "L[0]" << L[ 0 ] << endl;
}
while ( i< j&& L[ i] < temp) ++ i;
if ( i< j) {
L[ j] = L[ i] ;
-- j;
for ( int k = 0 ; k< n; ++ k) {
cout<< L[ k] << " " ;
}
cout<< endl;
cout<< "L[0]" << L[ 0 ] << endl;
}
}
L[ i] = temp;
}
int main ( ) {
vector< int > L = { 7 , 3 , 7 , 2 , 8 , 4 , 7 , 5 , 9 } ;
move ( L, 9 ) ;
for ( auto i: L) {
cout<< i<< " " ;
}
return 0 ;
}
结果
7 3 7 2 8 4 7 5 9
L[ 0 ] 7
5 3 7 2 8 4 7 5 9
L[ 0 ] 5
5 3 7 2 8 4 7 7 9
L[ 0 ] 5
5 3 7 2 8 4 7 7 9
L[ 0 ] 5
5 3 7 2 8 4 7 7 9
L[ 0 ] 5
5 3 7 2 8 4 8 7 9
L[ 0 ] 5
5 3 7 2 8 4 8 7 9
L[ 0 ] 5
5 3 7 2 4 4 8 7 9
L[ 0 ] 5
5 3 7 2 4 7 8 7 9