小可爱~ 发表于 2016-10-24 13:39

[分享][简单算法]选择排序算法

有理解错误的地方请见谅并指出错误
核心思想是:
             找出最小值得标号, 与当前位置交换即可.
#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;
}

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

小可爱~ 发表于 2016-10-25 16:49
可以指出来么???

不好意思啊,之前在手机上看的,有些地方没有显示出来,刚刚在电脑上看没啥问题

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

meanboo 发表于 2016-10-25 13:48
好多细节错误啊

可以指出来么???
页: [1] 2
查看完整版本: [分享][简单算法]选择排序算法