1、冒泡排序
优:简单,稳定,空间复杂度较低
缺:慢,时间复杂度较高
public static void main (String []args){ int []a ={1,6,2,4,9,0,3,7,5,8}; sort(a); for(int i:a){ System.out.print(i+"\t"); } } /** * 冒泡排序 * @param a */ public static void sort(int []a){ int length = a.length; int tem = 0; for(int i = 0; i<length-1; i++){ for(int j = i+1; j<length;j++){ if(a[i]>a[j]){ //交换数据 tem = a[i]; a[i] = a[j]; a[j] = tem; } } } }
2、插入排序
优:快,稳定
缺:比较次数不一定,比较次数少,则数据移动多
public static void main (String []args){ int []a ={1,6,2,4,9,0,3,7,5,8}; insertSort(a); for(int i:a){ System.out.print(i+"\t"); } } /** * 插入排序 * @param a */ public static void insertSort(int []a){ for(int i = 1 ; i < a.length ; i++){ int j = i - 1; int tem = a[i]; while(j>=0 && a[j]>tem){ a[j+1] = a[j]; j--; } a[j+1] = tem; } }
3、快速排序
优:快,数据移动少
缺:不稳定
public static void main (String []args){ int []a ={1,6,2,4,9,0,3,7,5,8}; quickSort(a,0,a.length-1); for(int i:a){ System.out.print(i+"\t"); } } /** * 快速排序 * @param a * @param low * @param height */ public static void quickSort(int []a , int low , int height){ if(low < height){ int tem = quick(a,low,height); quickSort(a,low,tem-1); quickSort(a,tem+1,height); } } public static int quick(int a[], int low, int height){ int n = low; int x = a[low]; while(low < height){ if(a[height] < x){ if(a[low] > x){ int tem = a[low]; a[low] = a[height]; a[height] = tem; }else{ low++; } }else{ height--; } } a[n] = a[low]; a[low] = x; return low; }
相关推荐
c三大排序c三大排序c三大排序c三大排序c三大排序摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!摘要必须大于100个字节!
java插入冒泡选择三大排序java插入冒泡选择三大排序java插入冒泡选择三大排序java插入冒泡选择三大排序java插入冒泡选择三大排序java插入冒泡选择三大排序
Java三种排序 Java三种排序 Java三种排序
每天都在叫嚣自己会什么技术,什么框架,可否...要编写出优秀的代码同样要扎实的基础,如果排序和查找算法学的不好,怎么对程序的性能进行优化?废话不多说,本文要介绍的这些排序算法就是基础中的基础,程序员必知!
八大排序三大查找
C++实现的三种重要排序算法(冒泡,选择,快排)
用C语言实现3个数从小到大排序的文本文件
VC++多线程实现三种排序算法比较----冒泡排序、快速排序、归并排序,很有意思,可以下载看看!
各种排序算法的C语言实现源代码,算法导论上的各种排序算法的C语言实现源代码,很全面
printf("\t1: 插入排序\n"); printf("\t2: 冒泡法排序\n"); printf("\t3: 快速排序\n"); printf("\t4: 直接选择排序\n"); printf("\t5: 堆排序\n"); printf("\t6: 归并排序\n"); printf("\t7: 希尔排序\n"); ...
可选择输出(原始数组、排序后数组、原始数组有序度和无序度、排序过程中数据比较次数与数据移动次数、数组中出现频次最多的元素与排序后数组中前三大元素)。提供源代码(采用面向过程的方式提供源代码与采用面向...
用汇编写的三种排序方法,选择排序、冒泡排序、插入排序
VB 三个数的排序 VB 三个数的排序 VB 三个数的排序
快速排序 希尔排序 插入排序 折半排序算法
java语言描述的插入排序 冒泡排序 选择排序 有源程序也有实验报告
一个Java数学排序小程序,给定三个整数x,y,z,程序处理后让这三个数由小到大排列输出,代码编写思路:想办法把最小的数放到x上,先将x与y进行比较,如果x> y则将x与y的值进行交换,然后再用x与z进行比较,如果x> z则...
编制一维数组排序程序。数组大小n用全局变量定义,数组数据从文本文件中读入或随机生成。包含冒泡排序、选择排序、插入排序三种排序方法。程序能够选择使用任何一种方法排序。
List Control的一个排序的程序,带有排序的三角,供大家学习参考
每次将待排序数组分为大致相等的三部分分别进行排序,然后再进行归并。
分别针对数组的三种排序:插入排序,冒泡排序,选择排序