美文网首页
排序算法:选择排序

排序算法:选择排序

作者: 疋瓞 | 来源:发表于2021-12-24 09:58 被阅读0次

1、环境配置:

  • 系统:win10
  • 编程语言:C++
  • 编译器:DevC++

2、算法思想:

找到一个最小(最大)的放到第一位,然后从剩下的当中继续找最小(最大)的放到第二位。

3、代码:

#include<iostream>

using namespace std;

void sort(int n,int a[]);

//主函数 
int main()
{
   int A[] = {5,4,3,2,1};
   for(int v=0; v<sizeof(A)/sizeof(A[0]); v++){
    cout<<A[v]<<",";
   }
   
   cout<<""<<endl;
   
   sort(sizeof(A)/sizeof(A[0]),A); 
   
   for(int v=0; v<sizeof(A)/sizeof(A[0]); v++)
   {
    cout<<A[v]<<",";
   } 
   return 0;
}


//选择排序函数 
void sort(int n,int a[])
{
    if(sizeof(a) < 1){
        cout<<"empty arry";
    }
    for(int i=0 ; i<n ; i++){
        //从i到最后一项中找最小项对应的下标 
        int min = a[i];
        int z = i;
        for(int m = i ; m < n ; m++){
            if(min > a[m]){
                min = a[m];
                z = m;
            }
        }   
        //将首项和最小数交换
        int sw = 0;
        sw = a[z];
        a[z] = a[i];
        a[i] = sw;
    } 
 
}

4、结果展示:

结果.png

5、反思总结:

//从i到最后一项中找最小项对应的下标 
        int min = a[i];
        int z = 0;
        for(int m = i ; m < n ; m++){
            if(min > a[m]){
                min = a[m];
                z = m;
            }
        }   

在测试当中这段代码出了问题,原因就是z的初始值问题,如果存在比a[i]小的项,那么z在for循环中会被替换,但是如果不存在比a[i]小的项,比如所有项目都是排好序的,那么for循环当中的条件语句就不会执行,z值也就不会改变,如果一开始给z赋值是0,就会出现问题。

相关文章

  • 算法-选择排序

    算 法:选择排序算法时间复杂度: 选择排序算法概述 选择排序伪代码 选择排序实现 选择排序算法概述 排序算法有许...

  • 算法4:插入排序和选择排序算法的比较

    排序算法列表电梯: 选择排序算法:详见 《算法4》2.1 - 选择排序算法(Selection Sort), Py...

  • 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

    图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

  • PHP常用算法

    基于选择的排序算法 常见的基于选择的排序算法有:冒泡排序、插入排序、选择排序、归并排序和快速排序,我们在选在排序算...

  • 算法and数据结构

    算法 冒泡排序 选择排序 计数排序

  • 基础排序算法总结

    排序算法分为内部排序和外部排序,而我们经常说的基础排序算法,都是内部排序算法。包括冒泡排序,选择排序,插入排序,快...

  • LeetCode大全

    1.常见排序算法: 常见的排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序、堆排序、计数排序、...

  • 《算法4》2.1 - 插入排序算法(Insertion Sort

    排序算法列表电梯: **选择排序算法:详见 Selection Sort ** 插入排序算法(Insertion ...

  • 排序算法

    排序算法 排序是最基本的算法之一,常见的排序算法有插入排序、希尔排序、选择排序、冒泡排序、堆排序、归并排序及快速排...

  • 面试算法知识梳理(12) - 二叉树算法第二部分

    面试算法代码知识梳理系列 面试算法知识梳理(1) - 排序算法 插入排序 希尔排序 选择排序 冒泡排序 计数排序 ...

网友评论

      本文标题:排序算法:选择排序

      本文链接:https://www.haomeiwen.com/subject/sggtqrtx.html