给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。
冒泡排序:
public:
/**
* @param A: an integer array
* @return: nothing
*/
void sortIntegers(vector<int> &A) {
// write your code here
int length,trans;
length=A.size();
for(int i=0;i<length-1;i++)
{
for(int j=0;j<length-1-i;j++)
{
if(A[j+1]<A[j])
{
trans=A[j];
A[j]=A[j+1];
A[j+1]=trans;
}
}
}
for(int i=0;i<length;i++)
cout<<A[i]<<endl;
}
};
选择排序:
class Solution {
public:
/**
* @param A: an integer array
* @return: nothing
*/
void sortIntegers(vector<int> &A) {
// write your code here
int length,trans;
length=A.size();
//选择排序
for(int i=0;i<length-1;i++)
{
int min=i;
for(int j=i+1;j<length;j++)
if(A[j]<A[min]) min=j;
trans=A[i];
A[i]=A[min];
A[min]=trans;
}
for(int i=0;i<length;i++)
cout<<A[i]<<endl;
}
};
//插入排序
class Solution {
public:
/**
* @param A: an integer array
* @return: nothing
*/
void sortIntegers(vector<int> &A) {
// write your code here
int length,trans;
length=A.size();
for(int i=1;i<length;i++)
{
int v=A[i];
int j=i-1;
while(j>=0&&A[j]>v)
{
A[j+1]=A[j]; //A[j]往后走 v往前走
j=j-1;
A[j+1]=v;
}
}
for(int i=0;i<length;i++)
cout<<A[i]<<endl;
}
};