欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

选择排序

程序员文章站 2022-03-01 15:12:32
...
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{
	int arr[5] = { 5, 4, 3, 2, 1 };
	int n = sizeof(arr) / sizeof(arr[0]);

	//需要遍历的总轮数比数组元素少一
	for (int i = 0; i < n - 1; i++)
	{
		int index = i;
		//此处为j < n,因为j每次都要移动到数组的最后一个元素
		//变化的是它的起始位置,而不是结束位置
		for (int j = index + 1; j < n; j++)
		{
			if (arr[index] > arr[j])
			{
				index = j;
			}
		}

		if (index != i)
		{
			int tmp = arr[index];
			arr[index] = arr[i];
			arr[i] = tmp;
		}
	}

	for (int i = 0; i < n; i++)
	{
		printf("%d\n", arr[i]);
	}

	system("pause");
	return 0;
}

 

上一篇: 选择排序

下一篇: 选择排序