1. 程式人生 > >藍橋杯 sort()函式與數列排序

藍橋杯 sort()函式與數列排序

藍橋杯的數列排序題目,如圖:


其中一個十分簡單的方法,就是利用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;
} //對於比較小的資料,可以採用冒泡法等進行排序,忽略效率的影響。