常用算法之:选择排序(C语言版)
2016-08-12 22:35
246 查看
选择排序算法:
/* fileName : selectSort.c */
/* author : hgy */
/* data : 2016 */
#include<stdio.h>
typedef int DATA_TYPE;
void selectSort(DATA_TYPE *a, int n)
{
int maxDataPos = 0;
DATA_TYPE temp = 0;
for (int i = 0; i < n - 1; ++i)
{
maxDataPos = i; /* 初始化最大数据所在位置 */
for (int j = i + 1; j < n; ++j)
{
if (a[i] < a[j])
{
maxDataPos = j; /* 找到最大数据所在的位置 */
}
}
if (i != maxDataPos)
{
temp = a[i];
a[i] = a[maxDataPos];
a[maxDataPos] = temp;
}
}
}
#define MAX_NUM 5
int main(void)
{
DATA_TYPE a[MAX_NUM] = {1, 2, 3, 6, 0};
printf("before sort:");
for (int i = 0; i < MAX_NUM; ++i)
{
printf("%d ", a[i]);
}
printf("\n");
selectSort(a, MAX_NUM);
printf("after sort:");
for (int i = 0; i < MAX_NUM; ++i)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
运行结果:
xxxMacBook:~ dede$ gcc selectSort.c
xxxMacBook:~ dede$ ./a.out
before sort:1 2 3 6 0
after sort:6 3 2 1 0
/* fileName : selectSort.c */
/* author : hgy */
/* data : 2016 */
#include<stdio.h>
typedef int DATA_TYPE;
void selectSort(DATA_TYPE *a, int n)
{
int maxDataPos = 0;
DATA_TYPE temp = 0;
for (int i = 0; i < n - 1; ++i)
{
maxDataPos = i; /* 初始化最大数据所在位置 */
for (int j = i + 1; j < n; ++j)
{
if (a[i] < a[j])
{
maxDataPos = j; /* 找到最大数据所在的位置 */
}
}
if (i != maxDataPos)
{
temp = a[i];
a[i] = a[maxDataPos];
a[maxDataPos] = temp;
}
}
}
#define MAX_NUM 5
int main(void)
{
DATA_TYPE a[MAX_NUM] = {1, 2, 3, 6, 0};
printf("before sort:");
for (int i = 0; i < MAX_NUM; ++i)
{
printf("%d ", a[i]);
}
printf("\n");
selectSort(a, MAX_NUM);
printf("after sort:");
for (int i = 0; i < MAX_NUM; ++i)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
运行结果:
xxxMacBook:~ dede$ gcc selectSort.c
xxxMacBook:~ dede$ ./a.out
before sort:1 2 3 6 0
after sort:6 3 2 1 0
相关文章推荐
- 【Java 常用算法】选择排序
- Java学习资料-Java常用算法-选择排序算法
- 常用算法之选择排序
- 算法分析中最常用的几种排序算法(插入排序、希尔排序、冒泡排序、选择排序、快速排序,归并排序)C 语言版
- 常用算法--基本排序算法(冒泡排序,选择排序,插入排序,快速排序,归并排序,桶排序)
- 数据结构与算法(C语言版)__选择排序
- 常用的选择排序.Shell排序.快速排序.冒泡排序.插入排序的算法
- 算法之常用排序:冒泡排序、选择排序、插入排序
- 两种常用的选择排序算法--简单选择排序、堆排序
- 常用算法之选择排序
- 常用的数据排序算法图解(冒泡,选择二分...)
- 常用算法Java实现之选择排序
- 常用排序、选择算法
- 几种常用的排序算法:插入排序、冒泡排序、选择排序的算法及C++实现
- 常用算法-直接选择排序
- java 合并排序算法、冒泡排序算法、选择排序算法、插入排序算法、快速排
- python算法实践5-直接选择排序
- 简单选择排序的算法实现
- 算法-选择排序
- 冒泡排序、选择排序、插入排序 算法实现(C++)