实现一个选择排序程序,排序整型数组。
首先明白什么是选择排序,选择排序是指,每一次在待排序数列中,选择一个最大的(或最小的)放到数列的最前端,然后再用这种方法排列后面的数列。
下面用选择排序实现从小到大排序,程序代码如下:
#include <stdio.h>
#include <assert.h>
#include <Windows.h>
void show(int arr[], int length) //打印数组函数
{
int i = 0;
for (i = 0; i < length; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
int Myline(int arr[], int length)
{ //选择排序函数(由小到大排序)
assert(arr);
int i = 0;
int k = 0;
int j = 0;
for (j = 0; j < length - 1; j++)
{
int min = j;
k = j;
for (i = j+1; i < length; i++)
{
if (arr[min]>arr[i]) //如果前一个数值大于它后面的
{
min = i; //把小的下标记下
k = min;
}
}
if (k!=j) //当前数不是最小的,交换当前数和比较的数列里最小的数
{
arr[j] =