注册 登录
编程论坛 新人交流区

数组排序最拉屎算法

野郎中 发布于 2007-10-15 22:42, 431 次点击
这个程序可以实现任意有序数组的排序任务,比如整型、实型、字符串等,是排序中最简单的,当然会比较不效率。
void order(DataType *p)
{ DataType *term,x;
int i,j;
for(i=0;i<N;i++) //没循环一次找到一个最小值
{ term=p+i;

for(j=i;j<N;j++)
if(*(p+j)<*term)
term=p+j;

if(term!=p+i)
{ x=*term;
*term=*(p+i);
*(p+i)=x;
}
}
}


测试程序如下:
#include<iostream>
#define N 6
typedef int DataType;
#include"funs.h"
void main()
{ int a[6]={6,5,4,3,2,1},i;
order(a);
for(i=0;i<N;i++)
cout<<a[i]<<" ";
cout<<endl;
}
2 回复
#2
yoapple2007-10-15 23:53

少见多怪!排序算法多得很.光我已知的就有好多:选择排序,插入排序,冒泡排序,交换排序,shell排序,基数排序,堆排序,归并排序,快速排序......算法不讲多少,效率高就好.其中最快的是快速排序,其大O为O(nlogn).如果你能开发一个为O(n)或
O(logn),我保证你会得Turing 奖,成中国第一人.

#3
雨中飛燕2007-10-16 00:20
1