选择排序

选择排序(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))

 

转载于:https://www.cnblogs.com/xswl/p/10082525.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值