1. 程式人生 > >選擇排序的C++實現

選擇排序的C++實現

簡單選擇排序為最簡單的選擇排序法,基本思想為:將待排序列分為有序區和無序區,每次排序都在無序區中尋找出最小的關鍵值放在無序區的最前面和已有的有序區構成新的有序區,然後繼續對無序區的元素進行選擇直到排序完畢。

C++實現如下:

/*************************************************************************
    > File Name: SelectSort.cpp
    > Author: Shorey
    > Mail: [email protected]
    > Created Time: 2015年04月09日 星期四 09時06分49秒
 ************************************************************************/

#include<iostream>
using namespace std;
void SelectSort(int a[],int n)//選擇排序
{
	for(int i=0; i<n-1; i++)
	{
		int index=i;
		for(int j=i+1; j<n; j++)
		{
			if(a[j]<a[index])//尋找無序區內的最小值
				index=j;
		}
		if(index!=i)             //把找到的最小值放到無序區的最前面
		{
			int tmp=a[index];
			a[index]=a[i];
			a[i]=tmp;
		}
	}
}
int main()
{
	int a[5]={
		7,3,1,5,70
	};
	SelectSort(a,5);
	return 0;
}


相關推薦

選擇排序——C實現

return 最大 n-1 spa 工作 cnblogs ret clu 輸出 選擇排序:   選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩余未排序元素中繼續

選擇排序(c++實現)

github部落格傳送門 csdn部落格傳送門 選擇排序原理: #include<iostream> using namespace std; const int MAX_NUM = 100; //選擇排序 int main(){ int a[MAX_NUM]; in

選擇排序——C#實現

       一 演算法描述        選擇排序(Selection sort)是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。        二 演算法實現(C#

排序演算法】選擇排序(C++實現)

選擇排序演算法就是每一趟從待排序的記錄中選出關鍵字最小(最大)的記錄,順序放在已排好序的子檔案的最後(最前),直到全部記錄排序完畢。常見的選擇排序有直接選擇排序(Selection Sort),堆排序(Heap Sort),平滑排序(Smooth Sort),笛卡爾樹排序(

排序演算法之選擇排序——C++實現

對於直接選擇排序演算法,是給每個位置選擇當前元素最小的,比如給第一個位置選擇最小的,在剩餘元素裡面給第二個元素選擇第二小的,依次類推,直到第n-1個元素,第n個 元素不用選擇了,因為只剩下它一個最大的元素了。那麼,在一趟選擇,如果當前元素比一個元素小,而該小的元素又出現在一個和當前元素相等的元素後面,那麼

【初探】“ 選擇排序 ” ——C++程式碼實現

  選擇排序(Selection sort)是一種簡單直觀的排序演算法。無論什麼資料進去都是 O(n²) 的時間複雜度。所以用到它的時候,資料規模越小越好。唯一的好處可能就是不佔用額外的記憶體空間了吧。   簡單排序處理流程 首先在未排序序列中找到最小

"選擇排序"C++/python實現

對一組資料進行選擇排序的方法是,在一組資料中找到最小的,排到第一位,然後從剩下的資料中找到第二個小的,排到第二位,逐次排序完成。 比如:3 ,7 ,9 ,10, 0這一組資料: 第一次排序:3,7,9,0,10,將最小的0排到第一位,3和0的位置交換,為0,7,9,3,1

常見排序演算法總結分析之選擇排序與歸併排序-C#實現

本篇文章對選擇排序中的簡單選擇排序與堆排序,以及常用的歸併排序做一個總結分析。 [常見排序演算法總結分析之交換排序與插入排序-C#實現](https://www.cnblogs.com/iwiniwin/p/12589405.html)是排序演算法總結系列的首篇文章,包含了一些概念的介紹以及交換排序(冒泡與

排序算法入門之選擇排序-Java實現

ati min .net 入門 oid 下標 static ava 對象數組 本文參考http://blog.csdn.net/m0_37568091/article/details/78023705 選擇排序是先從對象數組中選出最小的放在第一個位置,再從剩下的元素中選

排序 C++實現

logs pso int brush -- cpp end tac 排序 #include<iostream> #include<vector> #include<stack> #include<algorithm> #in

基數排序c++實現

復雜 -- cpp ++ stream c++實現 sin logs 中心 //中心思想,按照低位先排序,然後收集,再按照高位排序,然後再收集, //以此類推,直到最高位,是穩定算法,效率很高,復雜度是O(n㏒(r)m),r為采取的基數 //m為堆數,但是只能用在整數中,

選擇排序python實現

use 找到 ive eclipse div RF 數據 pos 一個 選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理是每一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的數據元素排完。註意每次查找

python 選擇排序實現

def 我們 turn 如果 選擇排序的實現 spa ret return 依次 基本思想:從未排序的序列中找到一個最小的元素,放到第一位,再從剩余未排序的序列中找到最小的元素,放到第二位,依此類推,直到所有元素都已排序完畢。假設序列元素總共n+1個,則我們需要找n輪,就可

氣泡排序選擇排序實現與分析

氣泡排序與選擇排序是兩種非常基礎的排序方式,也是許多程式設計師入門的排序演算法。很多資料結構或者演算法教材清晰明瞭地描述了兩種排序的工作原理,複雜度等,但紙上得來終覺淺,為了摸清楚兩種演算法的效能,我還是親自動手操作了一波~~~ 下面請跟上我的思路~~~ 氣泡排序作為最最基礎的排序方法,應該

簡單選擇排序 java實現

簡單選擇排序 基本思想:在要排序的一組數中,選出最小的一個數與第一個位置的數交換;然後在剩下的數當中再找最小的與第二個位置的數交換,如此迴圈到倒數第二個數和最後一個數比較為止。 程式碼實現如下 public class SimpleSelectSort { publi

選擇排序--php實現

原理:每一次從待排序的資料元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的資料元素排完.。 <?php /** * 選擇排序 * 資料結構----------------陣列 * 最差時間複雜度-----------O(n^2) * 最優時間複雜度

1045 快速排序——c實現

1045 快速排序 (25 分) 著名的快速排序演算法裡有一個經典的劃分過程:我們通常採用某種方法取一個元素作為主元,通過交換,把比主元小的元素放到它的左邊,比主元大的元素放到它的右邊。 給定劃分後的 N 個互不相同的正整數的排列,請問有多少個元素可能是劃分前選取的主元? 例

09_資料結構與演算法_選擇排序_Python實現

""" 選擇排序: 思路: 遍歷整個列表,找到最小項的位置。 如果該位置不是列表的第一個位置,演算法就會交換這兩個位置的項; 然後演算法回到第二個位置並重復這個過程 """ import random #定義一個交換函式 d

選擇排序簡單實現和複雜度估計

選擇排序 1.每一次從待排序的資料元素中選出最小(或最大)的一個元素,存放在 序列的起始位置,直到全部待排序的資料元素排完。 簡單實現 public class SelectionSort { /** * * @param arr 傳入需要排序的陣列

選擇排序java實現

package algorithm; public class SelectSort { public static void main(String[] args) { int[] a = {6,2,5,4,7,1,3,9,8}; selectSort(a, a