博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sort qort函数
阅读量:4977 次
发布时间:2019-06-12

本文共 3417 字,大约阅读时间需要 11 分钟。

sort函数  排序 头文件  #include<algorithm>

#include<iostream>

#include<algorithm>
using namespace std;
bool cmp1(int a,int b)
{return a>b;}//升序排列
bool cmp2(int a,int b)
{return a<b;}//降序排列
int main()
{
 int n,i,s[100];
 while(scanf("%d",&n)!=EOF)
 {
  for(i=0;i<n;i++)
   scanf("%d",&s[i]);
  sort(s,s+n,cmp1);
  for(i=0;i<n;i++)
   printf("%d   ",s[i]);
  printf("\n");
  sort(s,s+n,cmp2);
  for(i=0;i<n;i++)
   printf("%d   ",s[i]);printf("\n");
 }
 return 0;
}

 #include<iostream>

#include<algorithm>
using namespace std;
bool cmp1(char a,char b)
{
 return a>b; //升序排列
}
bool cmp2(char a,char b)
{
 return a<b;  //降序排列
}
int main()
{
 int n,i;
 char s[100];
 while(scanf("%d",&n)!=EOF)
 {
  getchar();
  for(i=0;i<n;i++)
   scanf("%c",&s[i]);
  sort(s,s+n,cmp1);
  for(i=0;i<n;i++)
   printf("%c  ",s[i]);
  printf("\n");
  sort(s,s+n,cmp2); 
  for(i=0;i<n;i++)
   printf("%c  ",s[i]);printf("\n");
 }
 return 0;
}

C++里实现对string数组的排序

方法一:(string本身就是个容器)
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
void main()
{
 string strArray[2] = { "hello", "abc" };
 sort(strArray, strArray+2); // 排序的起始地址和结束地址后一位
 for (int i = 0; i < 2; i++)
 {
  cout << strArray[i] << endl;
 }
}
方法二:将字符串都放在vector里
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
int main()
{
 vector<string> strArray ;
 string str[4] = {"hello, world!", "welcome to cpp.", "effective c++", "exceptional c++"};
 
 for(int i = 0; i<4; i++)
         strArray.push_back(str[i]);  //依次存入vector strArray
 sort(strArray.begin(), strArray.end());
 
 vector<string>::iterator st;
 for(st = strArray.begin(); st != strArray.end(); st++)
        cout<<*st<<endl;    //用iterator实现,也可用cout<<strArray.at(i)实现
       
 system("pause");
 return 0;
}

 

 

qort函数

#include<iostream>

#include<algorithm>
using namespace std;
int compare(const void *a,const void *b)
{
     return *(int*)b-*(int*)a;  
}

int main()

{
     int a[20]={2,4,1,23,5,76,0,43,24,65},i;
     for(i=0;i<10;i++)
        cout<<a[i];

     cout<<endl;

     qsort((void *)a,10,sizeof(int),compare);
     for(i=0;i<10;i++)
        cout<<a[i];

     cout<<endl;

     return 0;
}

 

qort函数对字符串排序

#include <stdio.h>

#include <string.h>
#include <stdlib.h>
char s[100][100];
int i,n;
int cmp(const void *a,const void *b)
{
     return(strcmp((char*)a,(char*)b));
}
int main()
{
 while(scanf("%d",&n))
 {
  for(i=0;i<n;i++)
   scanf("%s",s[i]);
  qsort(s,n,sizeof(s[0]),cmp);
  for(i=0;i<n;i++)
   printf("%s\n",s[i]);
 }
 return(0);
}

 

 

一、对int类型数组排序

Sample:

#include<stdio.h>
#include<stdlib.h>
int cmp ( const void *a , const void *b )
{
 return *(int *)a - *(int *)b;  //强制转换类型
}
int main()
{
 int n,i,s[100];
 while(scanf("%d",&n)!=EOF)
 {
  for(i=0;i<n;i++)
   scanf("%d",&s[i]);
  qsort(s,n,sizeof(s[0]),cmp);
  for(i=0;i<n;i++)
   printf("%d   ",s[i]);
 }
 return 0;
}

二、对char类型数组排序(同int类型)

//Sample:

#include<stdio.h>

#include<string.h>
#include<stdlib.h>
int cmp( const void *a , const void *b )
{
 return *(char *)a - *(char *)b;
}
int main()
{
 int n,i;
 char word[100];
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
  scanf("%s",word);
  int t=strlen(word);
  qsort(word,t,sizeof(word[0]),cmp);
  printf("%s\n",word);
 }
 return 0;
}

 

三、对double类型数组排序(特别要注意)

#include<stdio.h>

#include<string.h>
#include<stdlib.h>
int cmp( const void *a , const void *b )
{
 return *(double *)a > *(double *)b ? 1 : -1;
}
int main()
{
 double in[100];
 int i,n;
 while(scanf("%d",&n)!=EOF)
 {
  for(i=0;i<n;i++)
   scanf("%lf",&in[i]);
  qsort(in,n,sizeof(in[0]),cmp);
  for(i=0;i<n;i++)
   printf("%.1lf ",in[i]);
  printf("\n");
 }
 return 0;
}

转载于:https://www.cnblogs.com/pcoda/archive/2011/05/16/2104572.html

你可能感兴趣的文章
gvim 配置Pydiction
查看>>
Linux安装指定mysql版本
查看>>
分布式锁的三种实现方式
查看>>
poj 2109 pow函数也能这么用?p的开n次方
查看>>
Oracle database link
查看>>
python调用shell小技巧
查看>>
TL431的几种常用用法
查看>>
js 经典闭包题目详解
查看>>
在项目中移除CocoaPods
查看>>
【洛谷】CYJian的水题大赛【第二弹】解题报告
查看>>
POJ 1703 Find them, Catch them【种类/带权并查集+判断两元素是否在同一集合/不同集合/无法确定+类似食物链】...
查看>>
L1-5. A除以B【一种输出格式错了,务必看清楚输入输出】
查看>>
Git一分钟系列--快速安装git客户端
查看>>
纵越6省1市-重新启动
查看>>
hive安装以及hive on spark
查看>>
jz1074 【基础】寻找2的幂
查看>>
Wannafly模拟赛5 A 思维 D 暴力
查看>>
【Linux开发】CCS远程调试ARM,AM4378
查看>>
Linux之ssh服务介绍
查看>>
排序:冒泡排序
查看>>