排序演算法__選擇排序

Enjoy_process發表於2019-03-06

                                             排序演算法__選擇排序

 

 

一、介紹

選擇排序(Selection sort)是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小(或最大)的一個元素,存放在序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到全部待排序的資料元素排完。 選擇排序是不穩定的排序方法。

二、C++實現

#include<iostream>
#include<algorithm>
 
using namespace std;
 
void selectSort(int a[],int n)
{
	for(int i=0;i<n;i++)
	{
		int k=i;
		//找出[i,n)中最小的數 
		for(int j=i+1;j<n;j++)
		  if(a[k]>a[j])
		    k=j;
		if(k!=i) swap(a[i],a[k]);//此次最大值為a[k],將a[k]換在a[i]的位置上 
	}
}
 
int main()
{
	int a[10]={1,34,2,67,4,6,90,223,12,456};
	printf("排序前:"); 
	for(int i=0;i<10;i++)
	  printf("%d ",a[i]);
	selectSort(a,10);
	printf("\n排序後:");
	for(int i=0;i<10;i++)
	  printf("%d ",a[i]);
	return 0;
}
 

三、時間複雜度

O(n^{2})

相關文章