出題組的小y有突然有一天心血來潮想要整理出題組寫過的**,
但是他發現這群人寫過太多的**啦,分類整理的時候弄得他很頭禿,所以他一不做二不休的選擇了——
放棄!是不可能的放棄的, 這裡個個都是人才,說話又好聽,超喜歡這裡的,所以他是不會放棄幫大家整理**的!
所以他選擇了最划水的一種方式, 用時間排序!
他整理出來了每乙個**的最後修改時間, 打算將它們從小到大進行排序
時間的格式是 year/month/day-hour.minute.second
分別代表 年,月,日,小時,分鐘,秒
年月日之間用』/『字元分隔,日和小時之間用』-『字元分隔,小時,分鐘,秒之間用』.'分隔
輸入描術
第一行乙個n,代表要排序的時間有n個
接下來有n行,每行乙個字串代表要排序的時間(時間都是合法的)
其中 1<=n<=1000, 1<=year<=9999, 1<=month<=12, 1<=day<=28, 0<=hour<24, 0<=minute<60, 0<=second<60。
輸出描述
輸出有n行,分別是排好序的時間
輸入樣例
6
2019/11/13-21.5.56
2019/11/15-20.59.56
2019/11/15-19.59.56
2018/1/1/-0.0.0
2018/1/1/-0.0.0
2018/1/1/-0.0.1
輸出樣例
2018/1/1/-0.0.0
2018/1/1/-0.0.0
2018/1/1/-0.0.1
2019/11/13-21.5.56
2019/11/15-19.59.56
2019/11/15-20.59.56
首先定義結構體:
此後,一般的我們的思維是每個元素各個比較,最終達到排序目的
for
(i=0
;i1;i++)if
(x[i]
.a==x[j]
.a)if
(x[i]
.b==x[j]
.b)if
(x[i]
.c==x[j]
.c)if
(x[i]
.d==x[j]
.d)if
(x[i]
.e==x[j]
.e)}}}
}}}}
但這樣做**冗長,容易出錯,浪費時間,此時不如充分利用c語言自身函式庫中的函式「sort」,來解決問題:
sort函式使用格式為
sort(陣列名,陣列名+排序元素個數)(此時預設為公升序)
如何降序?如下
void cmp(int a,int b)
;struct p x[
1500];
struct p r;
intmain()
for(i=
0;i1;i++)if
(x[i]
.a==x[j]
.a)if
(x[i]
.b==x[j]
.b)if
(x[i]
.c==x[j]
.c)if
(x[i]
.d==x[j]
.d)if
(x[i]
.e==x[j]
.e)}}}
}}}}
for(i=
0;i)return0;
}
#include
#include
#include
using namespace std;
struct p
;struct p pow[
1000];
intcmp
(const p &s1,
const p &s2)
intmain()
sort
(pow,pow+n,cmp)
;for
(i=0
;i)return0;
}/*62019/11/13-21.5.56
2019/11/15-20.59.56
2019/11/15-19.59.56
2018/1/1-0.0.0
2018/1/1-0.0.0
2018/1/1-0.0.1思維簡化,**量變少,簡單明瞭。
sort是如此的快樂。
sort排序用法
做acm題的時候,排序是一種經常要用到的操作。如果每次都冒泡之類的o n 2 排序,不但程式容易超時,而且費時。在algorithm 演算法 庫里有個sort函式,可以直接對陣列排序,複雜度為n log2 n 使用這個函式,需要包含三個標頭檔案。include include using names...
Sort排序用法
使用sort函式簡單 方便,c 一種排序方法之一 排序方法是類似於快排的方法 但是實際運用過程需要我們做一些變形 於是 寫下這篇筆記,以便後來複習 sort start,end,cmp 標頭檔案為 include sort函式有三個引數 1 第乙個引數是陣列的首位址,一般寫上陣列名就可以,因為陣列名...
排序sort 排序用法
語法 array sort fun 引數fun可選。規定排序順序。必須是函式。注 如果呼叫該方法時沒有使用引數,將按字母順序對陣列中的元素進行排序,說得更精確點,是按照字元編碼的順序進行排序。如果想按照其他規則進行排序,就需要提供比較函式,該函式要比較兩個值,然後返回乙個用於說明這兩個值的相對順序的...