藍橋杯 sort()函式與數列排序
阿新 • • 發佈:2019-02-20
藍橋杯的數列排序題目,如圖:
其中一個十分簡單的方法,就是利用sort()函式。
sort()是C++標準庫中的函式,對給定區間所有元素進行排序,標頭檔案是#include <algorithm>。
sort函式使用模板: sort(start,end,排序方法)
三個引數:(1)start是要排序的陣列的起始地址。(2)第二個是結束的地址(最後一位要排序的地址的下一地址)。(3)第三個引數是排序的方法,可以是從大到小也可是從小到大,這個引數可以省略,預設的排序方法是從小到大排序。具體的用法可以百度。
這種方法如果不知道sort() 函式的用法的話,那將毫無作用。
我改進了一下冒泡法,對數列進行排序。
#include<iostream> using namespace std; int main(){ int n,tmp;cin>>n; int arr[n]; for(int i=0; i<n; i++){ cin>>arr[i]; //邊讀取,邊排序,讀取一個數,就進行排序。這樣可以提高效率。 if(i!=0 && arr[i]<=arr[i-1]) for(int j=i; j>0; j--) if(arr[j]<=arr[j-1]){ tmp=arr[j];arr[j]=arr[j-1];arr[j-1]=tmp; }else break; } for(int i=0; i<n; i++) cout<<arr[i]<<" "; return 0; } //對於比較小的資料,可以採用冒泡法等進行排序,忽略效率的影響。