选择排序

排序思路

在第一层循环中依次从数组中选择一个数组元素,然后在第二层循环中用选择的元素与后面的数组元素比较,如果发现后面的元素大于或者小于选择的元素,就与选择的数组元素交换位置。这样就使得每次选择的数组元素在第二层循环每次执行完后都是有序的,都是整个数组中最大或者最小的值。

第一层的循环次数是N次,第二层循环每次是N-i次。i+1是已经有序的数组元素的个数。

C语言
1
2
3
4
5
6
7
8
9
10
void selectSort(int *arr, int n) {
for (int i = 0; i < n; i++) {
int minIndex = i; // 选择一个数组元素
for (int j = i + 1; j < n; j++) {
if(arr[j] < arr[minIndex])
minIndex = j;
}
swap(arr[minIndex], arr[i]);
}
}
Python
1
2


JavaCript
1
2


PHP
1
2


OAuth2
You need to set install_url to use ShareThis. Please set it in _config.yml.

评论

You forgot to set the shortname for Disqus. Please set it in _config.yml.
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×