您的位置:首页 > 其它

常见排序算法实现及复杂度分析

2005-12-30 21:14 585 查看
一. 张仰彪排序法

这个算法是从CSDN的论坛上看到的,觉得挺有意思的,以下为张仰彪排序法的实现(Java描述):

public int[] SortProcedure(int[] oldArranewArray) {

// 存放排序后的数组

int[] newArray = new int[oldArranewArray.length];

// 待排序数据在数组里的排名

int order=0;

for (int i=0; i<oldArranewArray.length; i++) {

// 内循环运行一次,一个待排序数据在数组里的大小排名就确定了

for (int t=0; t<oldArranewArray.length; t++) {

// 待排序数组中的一个数据与其余数据相比较

if(oldArranewArray[t] > oldArranewArray[i])

// 每发现一个更大的数,自己的排名就向后延。

order++;

}

// 有点类似线性探测

while(newArray[order] != 0) // 非0说明此位置已拷入过数据。

order++; // 增大数据的排名,去找下一个位置。

// 将待排序数据oldArranewArray[i]复制到结果数组newArray。

newArray[order] = oldArranewArray[i];

order = 0; // 排完一个数据,准备再排下一个。

}

return newArray;

}

复杂度分析:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: