视图动画学习算法和数据结构(一)(<Garry进阶(四)>)
2015-01-25 14:56
399 查看
转载请注明原出处:http://blog.csdn.net/lrs123123/article/details/43114619
这是一个写给自己复习温习的博文,不喜勿喷
一、排序板块
①冒泡排序(BubbleSort)
动画展示:
java代码:
Eclipse运行结果
②选择排序(SelectSort)
动画展示:
java代码:
Eclipse运行结果
③插入排序(InsertionSort)
动画展示:
java代码:
Eclipse运行结果
③归并排序(MergeSort)
动画展示:
java代码:
Eclipse运行结果
//2015/2/23第二次更新
动画学习算法和数据结构第二波
还有栈,数组,树,链表,队列,图,二分分配,网络流等需要以后慢慢学习,先到这 2015-2-23
这是一个写给自己复习温习的博文,不喜勿喷
一、排序板块
①冒泡排序(BubbleSort)
动画展示:
java代码:
public class BubbleSort { public static void main(String[] args) { int unsortNums[] = { 3, 12, 17, 33, 2, 14, 1}; System.out.println("\n最终结果:"+Arrays.toString(BubbleSort(unsortNums))); } public static int[] BubbleSort(int[] arr){ int temp; for(int i=0; i < arr.length-1; i++){ for(int j=1; j < arr.length-i; j++){ if(arr[j-1] > arr[j]){ temp=arr[j-1]; arr[j-1] = arr[j]; arr[j] = temp; } } System.out.println((i+1)+"th 排序结果: "+Arrays.toString(arr)); } return arr; } }
Eclipse运行结果
②选择排序(SelectSort)
动画展示:
java代码:
public class SelectSort { public SelectSort() { }; // 无参构造 public static int[] selectSort(int[] attr) { // 返回int数组的构造 for (int i = 0; i < attr.length - 1; i++) { int smallNum = i; for (int j = i + 1; j < attr.length; j++) { if (attr[j] < attr[smallNum]) { smallNum = j; } } int temp = attr[i]; attr[i] = attr[smallNum]; attr[smallNum] = temp; System.out.println((i + 1) + "th 排序结果: " + Arrays.toString(attr)); } return attr; } public static void main(String[] args) { SelectSort selectSort = new SelectSort(); int[] unsortNums = { 3, 12, 17, 33, 2, 14, 1 }; System.out.println("\n最终结果:" + Arrays.toString(selectSort(unsortNums))); } }
Eclipse运行结果
③插入排序(InsertionSort)
动画展示:
java代码:
public class InsertionSort { public static void main(String[] args) { int[] unsortNums = { 4, 2, 9, 6, 23, 12, 34, 0, 1 }; insertionSort(unsortNums); } private static int [] printNumbers(int[] input) { for (int i = 0; i < input.length; i++) { } return input; } public static void insertionSort(int array[]) { int n = array.length; for (int j = 1; j < n; j++) { int key = array[j]; int i = j - 1; while ((i > -1) && (array[i] > key)) { array[i + 1] = array[i]; i--; } array[i + 1] = key; printNumbers(array); System.out.println("第"+(j-1) + "次排序结果: " + Arrays.toString(array)); } System.out.println("\n最终结果:" + Arrays.toString(printNumbers(array))); } }
Eclipse运行结果
③归并排序(MergeSort)
动画展示:
java代码:
public class MergeSort { private int[] array; private int[] tempMergArr; private int length; private void mergeParts(int lowerIndex, int middle, int higherIndex) { for (int i = lowerIndex; i <= higherIndex; i++) { tempMergArr[i] = array[i]; } int i = lowerIndex; int j = middle + 1; int k = lowerIndex; while (i <= middle && j <= higherIndex) { if (tempMergArr[i] <= tempMergArr[j]) { array[k] = tempMergArr[i]; i++; } else { array[k] = tempMergArr[j]; j++; } k++; } while (i <= middle) { array[k] = tempMergArr[i]; k++; i++; } System.out.println("第"+(j-1) + "次排序结果: " + Arrays.toString(array)); } public static void main(String a[]) { int[] inputArr = { 45, 23, 11, 89, 77, 98, 4, 28, 65, 43 }; MergeSort mms = new MergeSort(); mms.sort(inputArr); for (int i : inputArr) { } System.out.println("\n最终结果:" + Arrays.toString(inputArr)); } public void sort(int inputArr[]) { this.array = inputArr; this.length = inputArr.length; this.tempMergArr = new int[length]; doMergeSort(0, length - 1); } private void doMergeSort(int lowerIndex, int higherIndex) { if (lowerIndex < higherIndex) { int middle = lowerIndex + (higherIndex - lowerIndex) / 2; // 先排序左半部分数组 doMergeSort(lowerIndex, middle); // 排序右半部分数组 doMergeSort(middle + 1, higherIndex); // 合起来排序额哈哈 mergeParts(lowerIndex, middle, higherIndex); } } }
Eclipse运行结果
//2015/2/23第二次更新
动画学习算法和数据结构第二波
还有栈,数组,树,链表,队列,图,二分分配,网络流等需要以后慢慢学习,先到这 2015-2-23
相关文章推荐
- 视图动画学习算法和数据结构(二)(<Garry进阶(四)>)
- Android 仿QQ侧边栏,自定义view的学习 <Garry进阶(三)>
- ViewPager 和 ActionBarSherlock 的使用 <Garry进阶(一)>
- 推荐引擎算法学习导论-(协同过滤、聚类、分类、模糊和精确k-means算法等)<转>
- IOS学习 ModalViewController模态视图的创建 两视图间用代理方式<传值>
- 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate
- 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate
- Scala学习笔记<基本数据结构>
- python基础学习笔记<进阶>
- 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate
- <算法导论>学习笔记(3)--递归树求递归算法时间复杂度
- Android Netroid框架介绍及使用,又一简单粗暴的网络框架!<Garry进阶(二)>
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<Oracle_函数_触发器_游标_存储过程_视图>(三十五)
- 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<SQL_Server_视图_函数_存储过程_触发器等>(二十三)
- <收藏> 我的算法学习之路
- 【2015/11/15】 数据结构学习日志_Day16 链表 我的<LinkList.c>
- 待解决问题:验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate
- Android 学习意外第五季<1>——gps定位经纬度查询地址信息
- 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。