C

c++一个特殊数列的排序算法

Jonty
2013-10-10 / 1 评论 / 229 阅读 / 耗时: 12 ms / /正在检测是否收录...

点击下方自动查看隐藏内容....

AI摘要:该C++代码实现了一种特殊数列排序算法,通过分情况讨论,将数列中的元素移动到其正确位置,最终实现排序。
#include <iostream>
int main()
{
  int a[]={10,6,9,5,2,8,4,7,1,3};
  int len=sizeof(a)/sizeof(int);
  int temp;
  for(int i=0; i<len; )
  {
     temp = a[a[i]-1];
     a[a[i]-1]=a[i];
     a[i]=temp;
     if(a[i] ==i+1)
       i++;
  }
  for(int j=0; j<len; j++)
    cout << a[j] << ",";
    return 0;
}

}

这个算法其实是数学思想-分情况讨论的经典应用。
1.一个数字如果在它该在位置上,那么算法继续作用下一个数。
2.如果当前位置的数比该位置本来应有的数大,那么把它与后面的数交换。
3.如果当前位置的数比该位置本来应有的数小,那么把它与后面的数交换。

点击广告自动查看隐藏内容....

你认为这篇文章怎么样?
  • 0
    点赞
  • 0
  • 0
  • 0
    滑稽
  • 0
    尴尬
  • 0
    睡觉
  • 打赏
    打赏

评论 (1)

语录
密语
取消
  1. gkroot Lv.6
    安徽省合肥市联通
    Windows 10 Windows 10 · Google Chrome Google Chrome 沙发

    就是TMD快速排序

    回复 删除 垃圾 马赛克
头像
邮箱:
I P:
互动: