shokosブログ

プログラミング

ソートアルゴリズム計画その1.1

クイックソートバブルソートを書いてみました。
なかなか大変でした


クイックソート

public List<Integer> muchSort(List<Integer> list) {
	List<Integer> sortList = new ArrayList();
	sortList = list;
	int size = sortList.size();
	if (size == 1 || size == 0) {
		return sortList;
	} else {
		List<Integer> left = new ArrayList<Integer>();
		List<Integer> right = new ArrayList<Integer>();
		Integer center = sortList.get(size / 2);
		for (int i = 0; i <= size - 1; i++) {
			if (i != (size / 2)) {
				if (sortList.get(i) <= center) {
					left.add(sortList.get(i));
				} else {
					right.add(sortList.get(i));
				}
			}
		}
		List<Integer> result = new ArrayList<Integer>();
		result.addAll(muchSort(left));
		result.add(center);
		result.addAll(muchSort(right));
		return result;
	}

}

result.addAll(muchSort(left));
result.add(center);
result.addAll(muchSort(right));

の部分は再帰っていうらしいです

自分で生成できたらよかったのだけど
ここの部分はぐぐって参考にしましたorz

でも理解はできました!(時間かかったけど


今後がんがん使って行きたいとおもいます