知识大全 常见排序算法的java实现
Posted 过程
篇首语:从来好事天生俭,自古瓜儿苦后甜。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 常见排序算法的java实现相关的知识,希望对你有一定的参考价值。
最近在面试 遇到很多排序算法问题总结一下
定义数组如下
[java]
int[] array = new int[] ;
int[] array = new int[] ;
首先是插入排序
[java]
/**
* insert sort
* @param a
*/
private static void insertSort(int[] a)
System out println( 插入排序过程 );
for (int i = ; i < a length; i++)
int temp = a[i];
int j = i ;
while (j >= && a[j] > temp)
a[j + ] = a[j];
j ;
a[j + ] = temp;
System out print( 第 + i + 步 );
printArray(a);
System out println( 插入排序结果: );
printArray(a);
/**
* insert sort
* @param a
*/
private static void insertSort(int[] a)
System out println( 插入排序过程 );
for (int i = ; i < a length; i++)
int temp = a[i];
int j = i ;
while (j >= && a[j] > temp)
a[j + ] = a[j];
j ;
a[j + ] = temp;
System out print( 第 + i + 步 );
printArray(a);
System out println( 插入排序结果: );
printArray(a);
运行结果
插入排序过程
第 步
第 步
第 步
第 步
第 步
插入排序结果:
希尔排序实现
[java]
private static void shellInsertSort(int[] a int start int dk)
int i j;
for (i = start + dk; i < a length; i +=dk)
j = i dk;
int temp = a[i];
while(j >= && a[j] > temp)
a[j + dk] = a[j];
j = dk;
a[j + dk] = temp;
System out println( 排序结果 );
printArray(a);
private static void shellInsertSort(int[] a int start int dk)
int i j;
for (i = start + dk; i < a length; i +=dk)
j = i dk;
int temp = a[i];
while(j >= && a[j] > temp)
a[j + dk] = a[j];
j = dk;
a[j + dk] = temp;
System out println( 排序结果 );
printArray(a);
冒泡排序实现
[java]
/**
* bubble sort
* @param a
*/
private static void bubbleSort(int[] a)
System out println( 冒泡排序过程 );
for (int i = ; i < a length; i++)
for (int j = ; j < a length i ; j++)
if(a[j] > a[j + ])
int temp = a[j];
a[j] = a[j + ];
a[j + ] = temp;
System out print( 第 + (i+ ) + 步 );
printArray(a);
System out println( 冒泡排序结果 );
printArray(a);
/**
* bubble sort
* @param a
*/
private static void bubbleSort(int[] a)
System out println( 冒泡排序过程 );
for (int i = ; i < a length; i++)
for (int j = ; j < a length i ; j++)
if(a[j] > a[j + ])
int temp = a[j];
a[j] = a[j + ];
a[j + ] = temp;
System out print( 第 + (i+ ) + 步 );
printArray(a);
System out println( 冒泡排序结果 );
printArray(a);
运行结果
冒泡排序过程
第 步
第 步
第 步
第 步
第 步
第 步
冒泡排序结果
改进的冒泡排序算法
[java] view plaincopyprint?private static void bubbleSortBetter(int[] a)
System out println( 改进的冒泡排序过程 );
boolean bool;
int i = ;
do
bool = false;
for (int j = ; j < a length i ; j++)
if(a[j] > a[j + ])
int temp = a[j];
a[j] = a[j + ];
a[j + ] = temp;
bool = true;
i ++;
System out print( 第 + i + 步 );
printArray(a);
while(bool == true && i < a length);
System out println( 改进的冒泡排序结果 );
printArray(a);
private static void bubbleSortBetter(int[] a)
System out println( 改进的冒泡排序过程 );
boolean bool;
int i = ;
do
bool = false;
for (int j = ; j < a length i ; j++)
if(a[j] > a[j + ])
int temp = a[j];
a[j] = a[j + ];
a[j + ] = temp;
bool = true;
i ++;
System out print( 第 + i + 步 );
printArray(a);
while(bool == true && i < a length);
System out println( 改进的冒泡排序结果 );
printArray(a);
运行结果
改进的冒泡排序过程
第 步
第 步
第 步
改进的冒泡排序结果
cha138/Article/program/Java/hx/201311/26844
相关参考