几种常见的算法

冒泡算法

for(int i=0;i<a.length;i++) {
			for(int j=i;j<a.length;j++) {
				if(a[j]>a[j+1]) {
					int temp=a[j];
					a[j]=a[j+1];
					a[j+1]=temp;
				} 
			}
		}

 选择排序

for(int i=0;i<a.length;i++) {
			for(int j=i;j<a.length;j++) {
				if(a[i]>a[j]) {
					int temp=a[i];
					a[i]=a[j];
					a[j]=temp;
				} 
			}
		}

 插入排序,扑克牌模式

for (int i = 0; i < a.length; i++) {
			for (int j = i; j > 0 && a[j] < a[j - 1]; j--) {
				int temp = a[j - 1];
				a[j - 1] = a[j];
				a[j] = temp;

			}
		}

 希尔排序

int h = 1;
		while (h < a.length / 3)
			h = 3 * h + 1;
		while (h >= 1) {
			for (int i = 0; i < a.length; i++) {
				for (int j = i; j > 0 && a[j] < a[j - 1]; j--) {
					int temp = a[j - 1];
					a[j - 1] = a[j];
					a[j] = temp;

				}
			}
			h=h/3;
		}

猜你喜欢

转载自dan326714.iteye.com/blog/2396592