• 选择排序


    选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。

    C++

     1 #include<iostream>
     2 using namespace std;
     3 
     4 template<class T>
     5 int length(T& arr)
     6 {
     7     return sizeof(arr) / sizeof(arr[0]);
     8 }
     9 
    10 void print(int * const src ,const int src_lenght)
    11 {
    12     for(int i = 0 ;i<src_lenght;i++)
    13         cout<<src[i]<<"  ";
    14 
    15     cout<<endl;
    16 }
    17 
    18 int * Selection_sort(int * const src,const int src_lenght)
    19 {
    20     int min_index;
    21     int tmp;
    22     for(int i = 0;i<src_lenght-1;i++){
    23         min_index = i;
    24         for(int j = i;j<src_lenght-1;j++)
    25             if(src[min_index]>src[j])
    26                 min_index = j;
    27             
    28 
    29         if(i!=min_index)
    30         {
    31             tmp = src[i];
    32             src[i] = src[min_index];
    33             src[min_index] = tmp;
    34             print(src,src_lenght);
    35         }
    36 
    37     }
    38     return src;
    39 }
    40 
    41 int main()
    42 {
    43     int a[6] = {6,-9,10,10,-3,11};
    44     Selection_sort(a,length(a));
    45     print(a,length(a));
    46 
    47     return 0;
    48 }

    python

     1 """选择排序"""
     2 def selectionSort(src):
     3 
     4     for i in range(len(src) - 1):
     5         min_index = i
     6         for j in range(i,len(src) - 1 ):
     7             if (src[j] > src[j + 1]):
     8                 min_index = j + 1
     9             if(min_index != i):
    10                 src[i], src[min_index] = src[min_index], src[i]
    11     return src
    12 
    13 
    14 a = [6,8,1,0,3,4,5]
    15 print(selectionSort(a))
  • 相关阅读:
    动态规划>0/1背包问题 小强斋
    【C/C++和指针】auto_ptr智能指针
    WEBSHELL
    sql反模式分析1
    SQLServer之Compute/ComputeBy实现数据汇总
    链表算法大全
    【C++ Primer】自己动手编写函数 atoi(char *str)
    MySQL 5.5 的COMPRESSED INNODB 表
    【设计模式】加薪非要老总批 职责链模式
    【C和指针】const指针
  • 原文地址:https://www.cnblogs.com/xswl/p/10082525.html
Copyright © 2020-2023  润新知