您的位置:首页 > 其它

基础算法-直接选择排序

2016-04-20 12:52 211 查看

直接选择排序:

数组划分为左右两个区域,有序区和无序区,每次从无序区找到最小的那个元素的位置,然后把它放到有序区的最后面,这样第一次遍历将最小的放到了第一个位置,第二次遍历将剩余元素的最小的放到第二个位置,这样最后就按照升序把元素全部放到了有序区。

这里对于[5 4 2 3 1]进行排序

[][5 4 2 3 1]

[][1 4 2 3 5]

[1][4 2 3 5]

[1][2 4 3 5]

[1 2][4 3 5]

[1 2][3 4 5]

[1 2 3][4 5]

[1 2 3 4][5]

[1 2 3 4 5]

#include"array.h"
void isort(int a[],int n)
{
for(int i=0;i<n-1;i++){
int k=i;
for(int j=i+1;j<n;j++)
if(a[j]<a[k])
k=j;
if(i!=k){
int t=a[k];
a[k]=a[i];
a[i]=t;
}
}
}
int main()
{
int a[10];
getRandArray(a,10);
print(a,10);
isort(a,10);
print(a,10);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: