排序算法·选择排序

来源:互联网 发布:单片机 采集电池电压 编辑:程序博客网 时间:2024/06/04 00:36
算法讲解方面参阅下面这本书即可,这里只给出自己练习时实现的代码。参考书籍:《算法设计与分析基础》

1.伪代码

算法: SelectionSort(A[0...n-1])     //该算法用选择排序对给定的数组排序     //输入:一个可排序数组A[0...n-1]     //输出:升序排列的数组A[0...n-1]     for i = 0 to n-2 do         min = i         for j = i+1 to n-1 do             if A[j] < A[min]                  min = j             swap A[i] and A[min]

2.CPP实现:

#include <iostream>using namespace std;void swap(int &a, int &b);void selection_sort(int arr[], int length);int main(){    int arr[] = {25, 45, 15, 40, 90, 5, 85, 75, 32, 65, 10, 5, 100, 15};    int length = sizeof(arr) / sizeof(int);    selection_sort(arr, length);    for (int i = 0; i < length; i++)        cout << arr[i] << " ";    cout << endl;    return 0;}void swap(int &a, int &b){    int tmp = a;    a = b;    b = tmp;}void selection_sort(int arr[], int length ){    int n = length;    int min = 0;    for(int i = 0; i <= n - 2; i++){        min = i;        for(int j = i + 1; j <= n - 1; j++){            if(arr[j] < arr[min])                min = j;        }        swap(arr[i], arr[min]);    }}

3.算法复杂度:
输入规模:n
基本操作:数值比较
复杂度:


这里写图片描述