博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Algorithm_sort
阅读量:2338 次
发布时间:2019-05-10

本文共 2751 字,大约阅读时间需要 9 分钟。

Common sort algorithms include selection sort, insertion sort , glaring bubble sort and quicksort

Here are codes of above algorithm implemented in JAVA

/** *  * @author blacklaw */public class SortAlgorithmExample {	/**	 * @param args	 *            the command line arguments	 */	public static void main(String[] args) throws Exception {		// TODO code application logic here		sortTest(new SelectionSort());		sortTest(new InsertionSort());		sortTest(new BubbleSort());		sortTest(new QuickSort());		}		static void sortTest(Alignment ali){		long start, end;		start = System.nanoTime();		int[] origin = new int[]{16, 2, 3, 13, 5, 11, 10, 8, 9, 7, 6, 12, 4, 14, 15, 1};		int[] sorted = ali.sort(origin);		for (int i : sorted){			System.out.print(i + ", ");		}		end = System.nanoTime();		System.out.println(ali.getClass() + " " + Long.toString(end - start));	}		interface Alignment{		int [] sort(int[] origin);	}		static class SelectionSort implements Alignment{		@Override		public int[] sort(int[] origin) {			// TODO Auto-generated method stub			int t;			for (int i = 0; i < origin.length; i++){				int m = i;				for (int j = i + 1; j < origin.length; j++){					if (origin[j] < origin[m]){						m = j;					}				}				if (i != m){					t = origin[i];					origin[i] = origin[m];					origin[m] = t;				}			}			return origin;		}			}		static class BubbleSort implements Alignment{		@Override		public int[] sort(int[] origin) {			// TODO Auto-generated method stub			int t;			for (int i = 0; i < origin.length; i++){				for (int j = 0; j < origin.length - 1; j++){					if (origin[j] > origin[j+1]){						t = origin[j];						origin[j] = origin[j+1];						origin[j+1] = t;					}				}			}			return origin;		}			}	static class InsertionSort implements Alignment{		@Override		public int[] sort(int[] origin) {			// TODO Auto-generated method stub			for (int i = 1; i < origin.length; i++){				int t = origin[i];				int j = i - 1;				while (t < origin[j]){					origin[j+1] = origin[j];					j--;					if (j == -1){						break;					}				}				origin[j+1] = t;			}			return origin;		}			}		static class QuickSort implements Alignment{		@Override		public int[] sort(int[] origin) {			// TODO Auto-generated method stub			origin = quickSort(origin, 0, origin.length - 1);			return origin;		}				public int[] quickSort(int[] arr, int left, int right){			int t;			if (left < right){				int s = arr[left];				int i = left;				int j = right + 1;				while (true){					while (i+1 < arr.length && arr[++i] < s);					while (j-1 > -1 && arr[--j] > s);					if (i >= j){						break;					} else {						t = arr[i];						arr[i] = arr[j];						arr[j] = t;					}				}				arr[left] = arr[j];				arr[j] = s;				quickSort(arr, left, j-1);				quickSort(arr, j+1, right);			}			return arr;		}			}}

转载地址:http://sjgpb.baihongyu.com/

你可能感兴趣的文章
性能优化-jvm
查看>>
性能优化-mysql
查看>>
性能优化-tomcat
查看>>
JVM内存模型、指令重排、内存屏障概念解析
查看>>
【java基础】集合框架总结
查看>>
Elasticsearch-基础介绍及索引原理分析
查看>>
【深入理解JVM虚拟机】第7章 虚拟机类的加载机制
查看>>
【C++】二、指针数组与数组指针
查看>>
【C++】三、const与字符串
查看>>
【C++】四、重载,重写,重定义
查看>>
【C++】五、拷贝构造与赋值构造
查看>>
【C++】六、继承与多态
查看>>
特征向量的欧式距离与余弦距离——推荐算法
查看>>
cJSON源码分析3-核心解析算法
查看>>
如何正确使用C中的可变参数
查看>>
SDL2.0-简介
查看>>
SDL2.0-播放YUV文件
查看>>
leetcode 1.TwoSum--hashmap
查看>>
leetcode 14. Longest Common Prefix
查看>>
leetcode 26. Remove Duplicates from Sorted Array
查看>>