您的位置:首页 > 其它

地精排序-Gnome Sort

2016-11-25 19:03 393 查看
1.if i==0,we should straightly i++;

2.else if it’s ordered until a[i],we should i++ to skip

3.if it is unordered until a[i],we should swap,and then Roll back to i-1 to rejudge

c语言

#include<stdio.h>
void gnomesort(int a[],int n)
{
int i = 0;
while (i < n)
if (i == 0 || a[i-1] <= a[i]) i++;
else
{
int tmp = a[i];
a[i] = a[i-1];
a[--i] = tmp;
}
}
int main()
{
int a[5]= {7,4,1,3,2};
gnomesort(a,5);
for(int i=0; i<5; i++)printf("%d ",a[i]);
}


来自:

http://www.cnblogs.com/kkun/archive/2011/11/23/2260296.html

http://blog.csdn.net/winark/article/details/5918944
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: