[分享][简单算法]选择排序算法
有理解错误的地方请见谅并指出错误核心思想是:
找出最小值得标号, 与当前位置交换即可.
#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;
pArray = pArray;
pArray = tmp;
}
//打印数组
void printArray(int *pArray, int len)
{
for (int i = 0; i < len; i++)
{
printf("%d ", pArray);
}
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 < pArray)
{
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;
}
小可爱~ 发表于 2016-10-25 16:49
可以指出来么???
不好意思啊,之前在手机上看的,有些地方没有显示出来,刚刚在电脑上看没啥问题 前排压压精 选择排序
前排压压精 前排压压精 前排压压精 前排压压精 谢谢楼主 慢慢看 好多细节错误啊 meanboo 发表于 2016-10-25 13:48
好多细节错误啊
可以指出来么???
页:
[1]
2