程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 算法之排序-----排序第三篇 選擇排序

算法之排序-----排序第三篇 選擇排序

編輯:C++入門知識

選擇排序

真言

實踐是檢驗真理的唯一標准。

引言

選擇排序是初級程序員入門級的排序算法。我親自測了一下選擇排序的性能,性能相比其他排序算法是真慢,不過對於算法初學者來說學習一下還是有必要的,特為他們整理,以便他們參考。

思路

每趟遍歷選出最小或者最大的元素放在數據集合的首位或者末位,數據集合規模減小,依次找出第二小(大)元素,第三小(大)元素,······,最大(小)元素至結束。 制圖工具(office power point) \
時間復雜度O(n*n) 空間復雜度O(1)

實驗

對於選擇排序我跑了100000個數據,數據量是其他排序算法的十分之一,時間已經到了其他排序算法的十倍多(雖然這麼比較不太合理哈)。

\

代碼

test.cpp
// choice sort 
#include
#include
#include
using namespace std;

// use 1000,00 to test  
int const size = 100000;

// template function declare
template 
void Choice_sort(T *data,const int length);

int main()
{
	DWORD S,E;
	int * data = new int[size];
	for(int i =0 ; i 
void Choice_sort(T *data,const int length)
{
	if(data != NULL && length >= 0)
	{	
		int bit ;
		T min;
		for( int i = 0; i

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved