LintCode 入门-整数排序

论坛 期权论坛 脚本     
已经匿名di用户   2022-5-29 18:54   544   0

给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。

冒泡排序:

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++)
{

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;
}
};


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP