选择排序(c语言描述)

原创 2018年04月17日 09:24:22

选择排序的主要思想就是每次找出未排序序列中最小的值,然后将该值放到合适的位置。

#include <stdio.h>

#define  SWAP(a,b,c)  ((c)=(a),(a)=(b),(b)=(c))
void SelectionSort(int [],int); /*selection sort  */
void  main(void)
{
    int i,n=5;
    int list[5]={4,7,9,5,1};

    printf("the original array:");
    for(i=0;i<n;i++)
    {
        printf("%d ",list[i]);
    }
    printf("\n");
    SelectionSort(list,n);
    printf("the Sorted array:");
    for(i=0;i<n;i++)
    {
        printf("%d ",list[i]);
    }
    printf("\n");
}
void SelectionSort(int list[],int n)
{
    int i,j,min,temp;
    for(i=0;i<n-1;i++) //外循环,有n个数要排序
    {
        min=i;
        for(j=i+1;j<n;j++)//内循环,每次有一个数放到它最后应该在的位置。j=i+1表示前面已经排好序的,后面不需要操作,这也是选择排序的关键
        {
            if(list[j]<list[min])
            {
                min=j; 
            }
        }
        SWAP(list[i],list[min],temp);//移动数据
    }
}
排序过程:
14 7 9 5 1
21 7 9 5 4
31 4 9 5 7  
41 4 5 9 7
51 4 5 7 9

C语言那些事儿

-
  • 1970年01月01日 08:00

C语言选择排序详解及其实现

选择排序(Selection sort)是一种简单直观的排序算法。这次我们依然将其分为有序组与无序组。 (我将冒泡排序的链接放到这里,有兴趣的可以看看,冒泡排序:http://blog.csdn.ne...
  • LLZK_
  • LLZK_
  • 2016-06-10 21:48:51
  • 33805

C语言中的冒泡排序(2种)和选择排序

#include #include //冒泡排序1 void popupSort1(int *p,int len) { int i,j; for(i = 0;i
  • CSDN_LQR
  • CSDN_LQR
  • 2016-08-08 11:04:22
  • 5889

简单的C语言选择排序实现代码

#include typedef int elemType; void selectSort(elemType *arr,int arrLength) { int index...
  • qq_21431111
  • qq_21431111
  • 2014-10-02 10:51:27
  • 1509

选择排序的伪代码

以下是选择排序的伪代码以及一些分析: SELECTION-SORT(A)                         执行次数 1   for j = 1 to Length(A)      ...
  • xiaochaoqu
  • xiaochaoqu
  • 2013-11-14 16:59:31
  • 2567

C语言冒泡排序法和选择排序法的区别

冒泡排序法: #define _CRT_SECURE_NO_WARNINGS 1 #include #include #include void rank(int arr[], int len) {...
  • persistence_s
  • persistence_s
  • 2016-11-17 15:45:01
  • 20983

C语言冒泡排序及选择排序优化<代码>

C语言冒泡排序及选择排序优化 #include #define N 5 void xuanze(int a[]) { int i,j,max,min,t; for(i=0;i...
  • haxiao2015
  • haxiao2015
  • 2015-12-14 21:39:42
  • 1157

C语言简单选择排序算法的实现

简单选择排序从元素中跳出最小关键字,将其放在已排序列的最后,未排序的序列最前,直到全部排序完成为止,其空间复杂度为O(1),时间复杂度为O(n2)。下面是实现代码: 首先仍然是预定义和类型定义: ...
  • ZGUIZ
  • ZGUIZ
  • 2017-01-25 12:34:26
  • 1470

C语言之桶排序,冒泡排序,快速排序,选择排序算法学习

由于快找工作了,最近开始练习一些笔试题,学习了一下简单的桶排序,冒泡排序,快速排序,选择排序算法,不过这只是皮毛,懂C语言,数学只要不是很差都能明白这几个算法,学习这个算法主要是参考啊哈磊编著的《啊哈...
  • zouleideboke
  • zouleideboke
  • 2017-07-31 15:05:39
  • 426

(c语言)选择排序法和冒泡排序法

问题描述: 给定一个数组(或者输入一个数组),分别运用选择排序法和冒泡排序法将所要的结果输出。 程序分析:                                         选择排序 1...
  • live_wyq
  • live_wyq
  • 2015-04-20 19:11:48
  • 8918
收藏助手
不良信息举报
您举报文章:选择排序(c语言描述)
举报原因:
原因补充:

(最多只允许输入30个字)