排序法值选择排序(C语言实现)
今天我们来说一下排序法,排序法有分好多种,有比较排序,又有非比较排序。今天我们来说一下比较排序中的选择排序。
什么是选择排序?
所谓选择,以升序排序为例,就是将一组数据种最小的选择出来,放到这组数据的最前面,然后再从剩余的数据中在选择一个最小的(全部次小的),选择出来,放到这组数据第二个位置。以此类推,直到排序完成。这也就是选择排序的算法。
具体代码实现
// SelectSort.cpp
// 排序法之选择排序
// Created by Scarborough_Coral on 2017/3/8.
// Copyright © 2017年 Scarborough_Coral. All rights reserved.
//
#include <cstdio>
int main()
{
int a[5] = { 3,6,7,11,25 },temp;
//选择排序具体实现循环
for (int i = 0; i < 4; i++)
{
int k=i;
for (int j = i + 1; j < 5; j++)
{
//找到最小的元素下标并记录下来
if (a[k] > a[j])
{
k=j;
}
}
//将相应元素交换
temp=a[k];
a[k]=a[i];
a[i]=temp;
}
//打印输出排序后的数据
for (int i = 0; i < 5; i++)
{
printf("%d ", a[i]);
}
}
解释:
外层循环n-1次,n为数据个数,内层循环从未选择的元素头开始找,一直到到最大(或最小的元素),如果找到,则与相应位置交换处理。
今天的博客文章就到这里了,请多多支持,谢谢关注。