Linux C一站式学习习题答案11.2 实现选择排序(Selection Sort)算法
2014-08-26 19:05
459 查看
1.实现选择排序(Selection Sort)算法:第一次从数组 a[0..LEN-1] 中找出最小元素交换到 a[0] 的位置,第二次从数组 a[1..LEN-1] 中找出最小元素交换到 a[1] 的位置,依此类推。排序过程举例如下:
10, 5, 2, 4, 7 2, 5, 10, 4, 7 2, 4, 10, 5, 7 2, 4, 5, 10, 7 2, 4, 5, 7, 10
源代码:
#include <stdio.h> #define N 5 int sort (int a[]) { int i, j, k, temp; int n; for (i=0; i < N; i++) { k = i; for (j = N-1; j > i; j--) { if (a[k] > a[j]) { k = j; } } if (k != i) { temp = a[i]; a[i] = a[k]; a[k] = temp; } printf ("\n%dth sorted:\n", i+1); for (n = 0; n < N; n++) printf ("%-4d", a ); } return 0; } int main (void) { int i, a , *p; printf ("Please input original array:\n"); for (i = 0; i < N; i++) scanf ("%d", &a[i]); p=a; sort (p); printf ("\n\nThe sorted array:\n"); for (p=a, i = 0; i < N; i++, p++) printf ("%-4d", *p); printf ("\n"); return 0; }
相关文章推荐
- Linux C/C++编程一站式学习中选择排序
- 算法学习 - 选择排序的稳定性讨论(C++实现)
- 8大内部排序算法学习笔记--(3)选择排序java实现
- 一步步学习数据结构和算法之选择排序效率分析及java实现
- 算法(第四版)学习笔记之java实现选择排序
- Linux C一站式学习 第八章第三小节习题一答案
- 数据结构与算法——三种基础排序算法C#实现(冒泡排序、选择排序、插入排序)
- 快速排序,冒泡排序,直接选择排序的算法实现
- 几种常用的排序算法:插入排序、冒泡排序、选择排序的算法及C++实现
- [Python-算法]python实现冒泡,插入,选择排序
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
- 简单选择排序的算法实现
- 冒泡排序、选择排序、插入排序 算法实现(C++)
- 【算法学习】线性时间排序-计数排序、基数排序和桶排序详解与编程实现
- 冒泡排序、选择排序、插入排序 算法实现
- 冒泡排序、选择排序、插入排序 算法实现(C++)
- 经典算法(6)- 选择排序(Selection Sort)
- 快速排序 php实现 算法学习
- 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现