排序算法-------冒泡排序、选择排序、插入排序
2014-09-18 15:19
246 查看
冒泡排序算法
选择排序算法:
插入排序算法:
/** * 冒泡排序是最简单的排序算法之一。此算法具有二次方程增长阶, * 因此仅适合排序小列表。 * 冒泡排序算法是阶O(n^2)的算法 */ package com.szy.structure.sort; public class BubbleSort { public static void main(String[] args) { int[] array=new int[]{10,-2,30,22,1,2,5,4,3,20}; System.out.println("排序前:"); for (int i : array) { System.out.print(i+" "); } for (int i = 1; i < array.length; i++) { for (int j = 0; j < array.length-i; j++) { if (array[j]>array[j+1]) { int temp=0; temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } } } System.out.println("\n排序后:"); for (int i : array) { System.out.print(i+" "); } } }
选择排序算法:
/** * 选择排序是一个简单的排序算法,选择排序具有二次方程增长阶, * 因此仅使用与排序小的列表 * 选择排序算法是阶O(n^2)的算法 */ package com.szy.structure.sort; public class SelectionSort { public static void main(String[] args) { int[] array=new int[]{10,-2,30,22,1,2,5,4,3,20}; System.out.println("排序前:"); for (int i : array) { System.out.print(i+" "); } for (int i = 0; i < array.length-1; i++) { int min_index=i; for (int j = i+1; j < array.length; j++) { if (array[min_index]>array[j]) { min_index=j; } } int temp=array[i]; array[i]=array[min_index]; array[min_index]=temp; } System.out.println("\n排序后:"); for (int i : array) { System.out.print(i+" "); } } }
插入排序算法:
/** * 插入排序具有二次方程增长阶,因此仅用于排序小列表。 * 但是如果需要排序的列表几乎已经排序,则插入排序比冒泡排序 * 和选择排序更有效率。 * 插入排序最佳用例效率是O(n)阶 * 插入排序最糟用例效率是O(n^2)阶 */ package com.szy.structure.sort; public class InsertionSort { public static void main(String[] args) { int[] array=new int[]{10,-2,30,22,1,2,5,4,3,20}; System.out.println("排序前:"); for (int i : array) { System.out.print(i+" "); } for (int i = 1; i < array.length; i++) { int number=array[i]; for (int j = 0; j <i; j++) { if (number<array[j]) { for (int k = i; k >j; k--) { array[k]=array[k-1]; } array[j]=number; break; } } } System.out.println("\n排序后:"); for (int i : array) { System.out.print(i+" "); } } }
相关文章推荐
- 排序算法:冒泡排序、插入排序、选择排序、快速排序对比
- 笔试面试最常涉及到的12种排序算法(包括插入排序、二分插入排序、希尔排序、选择排序、冒泡排序、鸡尾酒排序、快速排序、堆排序、归并排序、桶排序、计数排序和基数排序)进行了详解。每一种算法都有基本介绍、算
- C++ ------------排序算法(冒泡排序-快速排序-选择排序-插入排序-希尔排序)
- C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序
- 常用算法--基本排序算法(冒泡排序,选择排序,插入排序,快速排序,归并排序,桶排序)
- 三种基本排序算法-冒泡排序,选择排序,插入排序
- 插入排序是基本排序算法中最好的一种,虽然插入排序也是需要O(N^2)时间,但它比冒泡排序快一倍,比选择排序还要快点。
- 排序算法一:冒泡排序,插入排序以及选择排序原理与MATLAB实现
- C#实现的3种排序算法--冒泡排序、选择排序、插入排序
- C++各种常见排序算法 冒泡排序,插入排序,快排序,选择排序,希尔排序
- C#的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序
- C#实现的3种排序算法--冒泡排序、选择排序、插入排序
- 常用的排序算法(包括冒泡排序,选择排序,插入排序,希
- 算法系列(三)排序算法上篇--冒泡排序插入排序和选择排序
- java实现各种排序算法(包括冒泡排序,选择排序,插入排序,快速排序(简洁版))及性能测试
- [C++]数据结构:排序算法Part1----冒泡排序、选择排序、插入排序、堆排序
- 三个基本排序算法执行效率比较(冒泡排序,选择排序和插入排序)
- 算法_基本排序算法之冒泡排序,选择排序,插入排序和希尔排序
- [C++]数据结构:排序算法Part1----冒泡排序、选择排序、插入排序、堆排序
- 几种常用的排序算法的分析及java实现(希尔排序,堆排序,归并排序,快速排序,选择排序,插入排序,冒泡排序)