第一行输入一个整数
代表数组中的元素个数。
第二行输入
个整数
代表数组中的元素。
第三行输入一个整数
代表排序方式,其中,
表示按升序,
表示按降序。
在一行上输出
个整数,代表排序后的数组。
5 1 2 2 5 4 0
1 2 2 4 5
5 1 2 2 4 5 1
5 4 2 2 1
#include <stdio.h>
#include <stdlib.h>
int com(const void* a, const void* b){
return *(int*)a - *(int*)b;
}
int com1(const void* a, const void* b){
return *(int*)b - *(int*)a;
}
int main() {
int n;
scanf("%d", &n);
int a[n];
for (int i = 0; i < n; i ++)
scanf("%d", &a[i]);
int op;
scanf("%d", &op);
qsort(a, n, sizeof(int), op == 0 ? com : com1);
for (int i = 0; i < n; i ++)
printf("%d ", a[i]);
return 0;
} #include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compar(const void* a, const void* b)
{
return (*(int*)a) - (*(int*)b);
}
int compar2(const void* a, const void* b)
{
return (*(int*)b) - (*(int*)a);
}
int main() {
int n=0,flag=0;
int val[1000]={0};
scanf("%d", &n);
for(int i=0; i<n; i++)
{
scanf("%d", &val[i]);
}
scanf("%d", &flag);
if(flag == 0)
qsort(val, n, sizeof(int), compar);
else
qsort(val, n, sizeof(int), compar2);
for(int i=0; i<n; i++)
printf("%d ", val[i]);
} #include "stdio.h"
#include "string.h"
void upper_bubble_sort(int arr[], int length)//升序冒泡排列:参数:数组和数据长度
{
int a ,b ,temp;
for(a = 0; a < length-1; a++)
{
for(b = 0; b < length-a-1; b++)
{
if(arr[b] > arr[b+1])
{
temp = arr[b];
arr[b] = arr[b+1];
arr[b+1] = temp;
}
}
}
}
int main()
{
int i,flag,c;//i:数组元素个数;flag:升降序排列标志位
int str[1000];//定义数组
scanf("%d", &i);
for(c = 0; c < i; c++)
{
scanf("%d", &str[c]);
}
scanf("%d", &flag);
upper_bubble_sort(str, i);
if(flag == 0)//从小到大(升序)排列
{
for(c = 0; c < i; c++)
{
printf("%d ", str[c]);
}
}
else
{
for(c = i-1; c >= 0; c--)
{
printf("%d ", str[c]);
}
}
} #include <stdio.h>#include <string.h>int main() {int num;int val[1000];int flag;scanf("%d",&num);for(int i=0;i<num;i++){scanf("%d ",&val[i]);}scanf("%d",&flag);for(int i=0;i<num;i++){ //用个冒泡排序来实现升序降序for(int j=i+1;j<num;j++){if(val[i]>val[j]){int tmp=val[i];val[i]=val[j];val[j]=tmp;}}}if(flag==0){//是0的话,那刚好满足刚才冒泡排序的升序for(int i=0;i<num;i++){printf("%d ",val[i]);}}else{//是1的话,要将刚才的升序倒着输出,那就把得到的升序数组倒着输出for(int i=0;i<num;i++){printf("%d ",val[num-i-1]);}}return 0;}
# include <stdio.h>
# include<stdlib.h>
int cmp (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int cmp1 (const void * a, const void * b)
{
return ( *(int*)b - *(int*)a);
}
int main() {
int n, b, arr[100000];
scanf("%d",&n);
for(int i = 0; i<n; i++)scanf("%d",&arr[i]);
scanf("%d",&b);
if(b) qsort(arr, n, sizeof(int), cmp1);
else
qsort(arr, n, sizeof(int), cmp);
for(int i = 0; i<n; i++){
printf("%d ",arr[i]);
}
return 0;
} #include <stdlib.h>
#include <stdio.h>
int mycompare(void *a, void *b){
return(*(int *)a - *(int *)b);
}
int main(void) {
int n = 0;
scanf("%d",&n);
int num[n];int i = 0;
for(i=0;i<n;i++){
scanf("%d",&num[i]);
}
int jojo = 0;
scanf("%d",&jojo);
qsort(num,n,sizeof(int),mycompare);
if(jojo == 0){
for(i=0; i<n;i++){
printf("%d ",num[i]);
}
} else{
for(i=n-1; i>-1;i--){
printf("%d ",num[i]);
}
}
} #include <stdio.h>
void selection_sort(int a[], int len);
void Inversion(int arr[], int len);
int main() {
int n;
scanf("%d", &n);
int value[n];
for (int i = 0; i < n; i++)
scanf("%d", &value[i]);
int flag;
scanf("%d", &flag);
selection_sort(value,n);
if (flag == 0)
for (int i = 0; i < n; i++)
printf("%d ",value[i]);
else if(flag == 1)
for (int i = n - 1; i >= 0; i--)
printf("%d ",value[i]);
return 0;
}
/* 升序选择排列
*
*/
void selection_sort(int a[], int len) {
int i,j,temp;
for (i = 0 ; i < len - 1 ; i++)
{
int min = i; // 记录最小值,第一个元素默认最小
for (j = i + 1; j < len; j++) // 访问未排序的元素
{
if (a[j] < a[min]) // 找到目前最小值
{
min = j; // 记录最小值
}
}
if(min != i)
{
temp=a[min]; // 交换两个变量
a[min]=a[i];
a[i]=temp;
}
}
} #include<stdio.h>
int main(){
int n;
int flag;
scanf("%d", &n);
int num[n];
for(int i=0; i<n; i++){
scanf("%d", &num[i]);
}
scanf("%d", &flag);
if(flag == 0){//small to big
for(int i=0; i<n; i++){
for(int j=i+1; j<n; j++){
if(num[i] > num[j]){
int temp;
temp = num[i];
num[i] = num[j];
num[j] = temp;
}
}
}
}else{ //big to small
for(int i=0; i<n; i++){
for(int j=i+1; j<n; j++){
if(num[i] < num[j]){
int temp;
temp = num[i];
num[i] = num[j];
num[j] = temp;
}
}
}
}
printf("%d",num[0]);
for(int i=1; i<n; i++){
printf(" %d", num[i]);
}
return 0;
}
#include<stdio.h>
int main()
{
int n = 0,flag,i = 0,j = 0,temp = 0;
char str[1000];
scanf("%d\n",&n);
for(i = 0;i <n; i++){
scanf("%d",&str[i]);
}
scanf("%d\n",&flag);
for(i = 0;i < n-1; i++)
{
for(j = i+1;j <n;j++)
{
if(str[i] < str[j])
{
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
}
if(flag == 1)
{ for(i = 0;i < n; i++){
printf("%d ",str[i]);
}
}
if(flag == 0)
{
for(i = 0;i<n;i++){
printf("%d ",str[n-i-1]);
}
}
return 0;
} #include <stdio.h>
#include <stdlib.h>
int flag=0;
int funcmp(const void *a,const void *b){
int x=0;
int x1=*((int*)a),x2=*((int*)b);
if(flag){
x=x2-x1;
}else{
x=x1-x2;
}
return x;
}
void fun(int *arr,int n){
qsort(arr,n, sizeof(int),funcmp);
for(int j=0;j<n;j++){
printf("%d ",arr[j]);
}
printf("\n");
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
int arr[n];
for(int i=0;i<n;i++){
scanf("%d",&arr[i]);
if(getchar()=='\n') break;
}
scanf("%d",&flag);
fun(arr,n);
}
return 0;
}