首页 > 代码库 > 排序练习题(四):三色排序
排序练习题(四):三色排序
有一个只由0,1,2三种元素构成的整数数组,请使用交换、原地排序而不是使用计数进行排序。
给定一个只含0,1,2的整数数组A及它的大小,请返回排序后的数组。保证数组大小小于等于500。
测试样例:
[0,1,1,0,2,2],6
返回:[0,0,1,1,2,2]
public class ThreeColor { public int[] sortThreeColor(int[] A, int n) { // write code here int i=0; int j=0; int k=n-1; while(j<=k){ if(A[j]==0){ swap(A, j, i++); j++; } else if(A[j]==1){ j++; } else{ swap(A, j, k--); } } return A; } void swap(int[] A,int m,int n){ if(m!=n){ int temp = A[m]; A[m] = A[n]; A[n] = temp; } }}
排序练习题(四):三色排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。