首页 > 其他 > 详细

selectSort

时间:2014-02-27 09:16:22      阅读:522      评论:0      收藏:0      [点我收藏+]

selectSort:
1. idea:
比如说从小到大排序,第一个元素与ta后面的元素逐个比较,如果发现比该元素小的元素则swap,
这样一轮比较下来最小的元素放在了第一个位置;
然后第二个元素与后面的元素进行比较,把第二小的元素放在了第二个位置,。。。。。。

comflexity: n^2;
2. input:
数组A,size n;
3. output:
排好序的数组A;
4. process:

selectSort(int * A, int n){
for: i : 0~n-1; i++{
k=i;//每次比较时k的初始值。
for: j: i+1~n-1;j++{
if(A[k]>A[j])
k=j;
}// for 结束时找到一轮循环中最小的元素的编号K.
if(k>i)
swap(k,i);
}
}

6. 具体实现:

#define N 4;
int A[N]={1, 5,2,4};
void swap1(int i,int j);

int main(){
int i,j;
//int flag;
for(i=0;i<N;i++)
{ //flag=1;
k=i;
for(j=i+1;j<N;j++)
{
if(A[k]>A[j])
{ k=j;
}
}
if(k!=i)
swap1(k,i);
}
return 0;
}

void swap1(int i,int j){
A[i]+=A[j];
A[j]=A[i]-A[j];
A[i]-=A[j];

}

selectSort,布布扣,bubuko.com

selectSort

原文:http://www.cnblogs.com/legend050709/p/3569155.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!