⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shellsortimp.java

📁 用JAVA实现排序等简单算法的演示
💻 JAVA
字号:
package algorithmImp;

public class ShellSortImp extends SortAlgorithmImp {
	protected static final int MAX_SEQ_SIZE = 10;
	protected int[] shellSeq = new int[MAX_SEQ_SIZE]; 
	
	public void sorting() {
		int seqSize = initShellSeq();
		
		for (int seqIndex = 0; seqIndex < seqSize; seqIndex++) {
			int seq = shellSeq[seqIndex];
			for (int scanIndex = seq; scanIndex < data.length; scanIndex++) {
				select(scanIndex);		// 选择当前正在扫描元素,查找其合适的插入位置
				int insertPos = scanIndex - seq;
				for (; insertPos >= 0; insertPos = insertPos - seq) {
					if (compareSelectedWith(insertPos)) break;
					else moveElement(insertPos, insertPos+seq);
				}
				// 将原先保存的当前正在扫描元素放(插入)到合适位置
				if (scanIndex > insertPos+seq) placeSelectedData(insertPos+seq);
			}
		}
	}
	
	private int initShellSeq() {
		int[] internalSeq = {1, 5, 9, 17, 33, 65, 129, 257};
//		int[] internalSeq = {1, 3, 7, 15, 31, 63, 127, 255};
		
		int index;
		for (index = 0; index < internalSeq.length; index++) {
			if (data.length < internalSeq[index]*2) break;
		}
		if (index > 0) index = index - 1;
		for (int i = index; i >= 0; i--) shellSeq[index-i] = internalSeq[i];
		return index+1;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -