数据结构与算法-选择排序
2015-08-24 19:18
399 查看
选择排序(按个子高低排座位)
模拟人的思维方式;
每次选定一个位置,用这个位置上的数字和所有其他位置上的数字比较并调整顺序;
然后换一个位置重复上面的操作直到所有数字的顺序都调整好;
采用双重循环实现;
外层循环的循环变量从第一个位置到倒数第二个位置,内层循环的循环变量从外循环的变量+1到最后一个位置;内循环内部对两个循环变量对应位置的数字进行处理;
就好比体育老师按高低个给同学们排队;
2 4 3 6 5 1
1 4 3 6 5 2
1 2 4 6 5 3
1 2 3 6 5 4
1 2 3 4 6 5
1 2 3 4 5 6
模拟人的思维方式;
每次选定一个位置,用这个位置上的数字和所有其他位置上的数字比较并调整顺序;
然后换一个位置重复上面的操作直到所有数字的顺序都调整好;
采用双重循环实现;
外层循环的循环变量从第一个位置到倒数第二个位置,内层循环的循环变量从外循环的变量+1到最后一个位置;内循环内部对两个循环变量对应位置的数字进行处理;
就好比体育老师按高低个给同学们排队;
/* * 选择排序演示 */ #include <stdio.h> void print(int *arr, int num) { int pos = 0; for (pos = 0; pos <= num - 1; pos++) { printf("%d ", arr[pos]); } printf("\n"); } int main() { int arr[6] = { 2, 4, 3, 6, 5, 1 }, pos = 0, num = 0; print(arr, 6); for (num = 0; num <= 4; num++) { /* 一次排好一个位置 */ for (pos = num + 1; pos <= 5; pos++) { if (arr[num] > arr[pos]) { int tmp = arr[num]; arr[num] = arr[pos]; arr[pos] = tmp; } } print(arr, 6); } return 0; }
2 4 3 6 5 1
1 4 3 6 5 2
1 2 4 6 5 3
1 2 3 6 5 4
1 2 3 4 6 5
1 2 3 4 5 6
相关文章推荐
- 数据结构与算法-冒泡排序
- 数据结构与算法-二叉树
- 数据结构与算法-链表
- 数据结构与算法-队列
- 数据结构与算法基础1
- java数据结构(三)排序
- 数据结构学习之路-第二章:线性表的顺序表示与实现
- java数据结构学习笔记(二)数组
- 字典树(Trie树、单词查找树、前缀树)
- 数据结构七:选择,冒泡,插入,希尔,快速排序实现
- 基本数据结构:链表
- Python数据结构:序列——元组和列表
- Android的NDK开发(4)————JNI数据结构之JNINativeMethod
- 根据STL 学习数据结构
- java数据结构学习笔记(一)综述
- 栈和队列数据结构的基本概念及其相关的Python实现
- UVA11990 ``Dynamic'' Inversion (树状数组套平衡树)
- 线性表的链式存储结构及操作
- PE中重要数据结构(winnt.h)
- 数据结构之-堆