网站建设课结课感受,网站建设下单源码,公司网站的搭建方案,it外包行业引言
选择排序就是找出每趟中的最小值或者最大值与对应趟数位置上的数值进行交换#xff0c;从而排序#xff0c;具体像序列#xff1a;2#xff0c;5#xff0c;4#xff0c;3#xff0c;8若按照从小到大的顺序选择排序#xff0c;总共5个元素#xff0c;需要进行5-…引言
选择排序就是找出每趟中的最小值或者最大值与对应趟数位置上的数值进行交换从而排序具体像序列25438若按照从小到大的顺序选择排序总共5个元素需要进行5-1趟操作第一趟找出25438中的最小值2与第一个位置上的数进行交换变为25438第二趟在剩下的元素5438中找到最小值3与第二个位置上的元素5交换整体变为23458第三趟在剩下的三个元素458中找出最小值4与第三个位置上的元素进行交换变为23458第四趟在剩下的元素58中找到最小值5与第四个位置上的元素交换位置变为23458至此完成了选择排序这里对于最后一个元素无需进行上述的操作。若按照从大到小的顺序选择排序每一趟找出的应是最大值。
示例
下面实现按照从小到大的顺序选择排序。代码如下 SelectSort.cpp
// SelectSort.cpp : 定义控制台应用程序的入口点。
//#include stdafx.h
#include iostream
#include stdlib.h
using namespace std;/************************************************************************/
/* 功能选择排序从小到大 25438功能函数void swap(int *p1,int *p2) 交换两个数的值void selectSort(int *parr,int n) 选择排序void printArr(int *parr,int n) 输出数组中的值*/
/************************************************************************/void swap(int *p1,int *p2)
{int temp;temp *p1;*p1 *p2;*p2 temp;
}void selectSort(int *parr,int n)
{for(int i 0; i n-1; i){int min parr[i];//默认每一趟第一个值为最小值for(int j i; j n; j)//获取该趟最小值{if (parr[j] min){swap(parr[j],min);}}if(min ! parr[i]){swap(parr[i],min);//最小值与对应趟的位置上数值交换} }
}void printArr(int *parr,int n)
{for(int i 0;i n ; i){coutparr[i]\t;}
}int _tmain(int argc, _TCHAR* argv[])
{int array[] {2,5,4,3,8};printArr(array,5);coutendl;selectSort(array,5);printArr(array,5);coutendl;system(pause);return 0;
}项目是基于vs2010的控制台输出程序其结构如下
运行效果