(题目暂时不写了,主要是为了保研整理的资料,日后再进行补充)
程序代码:
#include<stdio.h>
int main(){
int n;
int buf[100];
while (scanf("%d",&n)!=EOF)
{
for (int i = 0; i < n; i++)
{
scanf("%d", &buf[i]);
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n-1-i; j++)
{
if (buf[j]>buf[j+1])
{
int temp = buf[j];
buf[j] = buf[j + 1];
buf[j + 1] = temp;
}
}
}
for (int i = 0; i < n; i++)
{
printf("%d ", buf[i]);
}
printf("\n");
}
return 0;
}
使用C++内置的快速排序:
#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){
int n;
int buf[10000];
while (scanf("%d",&n)!=EOF)
{
for (int i = 0; i < n; i++)
{
scanf("%d", &buf[i]);
}
sort(buf, buf + n);
for (int i = 0; i < n; i++)
{
printf("%d ", buf[i]);
}
printf("\n");
}
}
降序排列:
#include<stdio.h>
#include<algorithm>
using namespace std;
int cmp(int x, int y){
return x > y;
}
int main(){
int n;
int buf[1000];
while (scanf("%d",&n)!=EOF)
{
for (int i = 0; i < n; i++)
{
scanf("%d", &buf[i]);
}
sort(buf, buf + n, cmp);
for (int i = 0; i < n; i++)
{
printf("%d ", buf[i]);
}
printf("\n");
}
}
学生成绩排序:
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
struct E{
char name[101];
int age;
int score;
}buf[1000];
bool cmp(E a, E b){
if (a.score != b.score){
return a.score < b.score;
}
int tmp = strcmp(a.name, b.name);
if (tmp!=0)
{
return tmp < 0;
}
else
{
return a.age < b.age;
}
}
int main(){
int n;
while (scanf("%d",&n)!=EOF)
{
for (int i = 0; i < n; i++)
{
scanf("%s%d%d", &buf[i].name, &buf[i].age, &buf[i].score);
}
sort(buf, buf + n, cmp);
for (int i = 0; i < n; i++)
{
printf("%s %d %d\n", buf[i].name, buf[i].age, buf[i].score);
}
printf("\n");
}
}
运算符重载进行排序:
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
struct E
{
char name[101];
int age;
int score;
bool operator < (const E &b) const{
if (score!=b.score)
{
return score < b.score;
}
int tmp = strcmp(name, b.name);
if (tmp!=0)
{
return tmp < 0;
}
else
{
return age < b.age;
}
}
}buf[1000];
int main(){
int n;
while (scanf("%d",&n)!=EOF)
{
for (int i = 0; i < n; i++)
{
scanf("%s%d%d", &buf[i].name, &buf[i].age, &buf[i].score);
}
sort(buf, buf + n);
for (int i = 0; i < n; i++)
{
printf("%s %d %d\n", buf[i].name, buf[i].age, buf[i].score);
}
printf("\n");
}
}