selectSort

来源:互联网 发布:vb程序设计课后答案 编辑:程序博客网 时间:2024/06/05 04:30
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];

}


0 0