您的位置:首页 > 理论基础 > 数据结构算法

数据结构与算法-选择排序

2015-08-24 19:18 399 查看
选择排序(按个子高低排座位)

模拟人的思维方式;

每次选定一个位置,用这个位置上的数字和所有其他位置上的数字比较并调整顺序;

然后换一个位置重复上面的操作直到所有数字的顺序都调整好;

采用双重循环实现;

外层循环的循环变量从第一个位置到倒数第二个位置,内层循环的循环变量从外循环的变量+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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: