吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3450|回复: 11
收起左侧

[C&C++ 转载] [分享][简单算法]选择排序算法

[复制链接]
小可爱~ 发表于 2016-10-24 13:39
有理解错误的地方请见谅并指出错误
核心思想是:
             找出最小值得标号, 与当前位置交换即可.

[C] 纯文本查看 复制代码
#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//数组元素值得交换
void FuncSwap(int *pArray, int i, int j)
{
	int tmp;
	tmp = pArray[i];
	pArray[i] = pArray[j];
	pArray[j] = tmp;
}
//打印数组
void printArray(int *pArray, int len)
{
	for (int i = 0; i < len; i++)
	{
		printf("%d ", pArray[i]);
	}
	puts("");
}
//选择排序核心算法
//核心思想是:
//	找出最小值得标号, 与当前位置交换即可.(数组有多长当前位置就有几个)
void SelectionSort(int *pArray, int len)
{
	int i, j, min;
	
	//选择当前位置
	for (i = 0; i < len; i++)
	{
		min = i;
		//这个for循环的主要目的是
		//找出最小的数值的数组标号
		//就是将当前位置与这个数组中(当前位置的后一个位置开始)依次作比较
		for (j = i + 1; j < len; j++)
		{
			if (pArray[j] < pArray[min])
			{
				min = j;//找出来
			}
		}
		if (min != i)
			FuncSwap(pArray, i, min);//将这个最小的值和 i (当前位置)的值进行交换
	}
}

int main(int argc, char *argv[])
{
	int ret = 0;
	int pArray[] = { 22, 1111, 2223, 44445, 333, 5555555 };
	SelectionSort(pArray, sizeof(pArray) / sizeof(int));
	printArray(pArray, sizeof(pArray) / sizeof(int));
	system("pause");
	return ret;
}

免费评分

参与人数 3热心值 +3 收起 理由
regan + 1 热心回复!
wangsheng66 + 1 热心回复!
Cizel + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

meanboo 发表于 2016-10-25 19:07

不好意思啊,之前在手机上看的,有些地方没有显示出来,刚刚在电脑上看没啥问题
abc43992899 发表于 2016-10-24 14:12
我是你老大 发表于 2016-10-24 16:08
小补 发表于 2016-10-24 16:20

前排压压精
回归自然 发表于 2016-10-24 16:27
前排压压精
Nino30888 发表于 2016-10-24 16:39 来自手机
前排压压精
zhaoweifu 发表于 2016-10-24 16:41
前排压压精
璟秋岁月 发表于 2016-10-24 22:27
谢谢楼主 慢慢看
meanboo 发表于 2016-10-25 13:48 来自手机
好多细节错误啊
 楼主| 小可爱~ 发表于 2016-10-25 16:49

可以指出来么???
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-12 05:59

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表