之前用java写过几篇关于排序算法的博客,作为一个初级菜鸟把所有的代码都写在main函数中,感觉不是很好,今天特意花点时间整理一下。
从性能方面而言,内部排序的多种排序方法各有优缺点,无法评定出可以获得公认的最佳排序法,排序算法在不同的环境中执行效率存在较大差异。按排序过程中依据的原则,内部排序方法可以分为插入排序,交换排序,选择排序,并归排序和分配排序5类;按照内部排序过程中所需的工作量,则可以分为简单的排序方法,先进的排序方法和基数排序3类。
在这里先总结一下选择排序和冒泡排序。
为了更好的体现java的面向对象思想,在写排序算法之前需要考虑排序需要用到哪几个功能。
1、首先当然是要有实现排序功能的主体
2、排序的过程中需要将元素的位置互换
3、要将排序后的结果显示出来
分析完需求接下来就是实现它了
步骤1、实现排序功能的主体
步骤2、写出进行元素的位置置换的方法
private static void swap(int[] array, int m,int n) {
int temp = array[m];
array[m] = array[n];
array[n] = temp;
}
步骤3、显示排序的结果
public static void printArray(int[] array)
{
System.out.print("[");
for (int index = 0; index < array.length; index++)
{
if (index != array.length - 1)
System.out.print(array[index] + ",");
else
System.out.println(array[index] + "]");
}
}
完成这三步基本上就大功告成了,接下来就是在main函数中调用了
public static void main(String[] args) {
int[] array = { 3, 0, 18, 25, 9, 41, 29, -16, -2, 5 };
// SortDemo.bubbleSort(array);//冒泡排序
// SortDemo.selectSort(array);//选择排序
System.out.println("排序后的数组是:");
SortDemo.printArray(array);
}
显示结果:
排序后的数组是:
[-16,-2,0,3,5,9,18,25,29,41]
未完待续!!!