- 浏览: 45029 次
- 性别:
- 来自: 武汉
文章列表
基数排序的核心思想是:把待排序的数组N中的数据分解成为个位,十位,百位.....然后再从个位开始排序,得到第一个数组N1,然后再把N1数组的十位进行排序得到N3,再对N3数组的百位进行排序得到N4,依次这样排序,直到数组中的所有数据的位数都用来排过序了,就可以得到我们所需要的排序数组了。
以下就是过程代码:
/*
* 基数排序的java实现
* @version 1.0 2012/4/1
* @author akon
*/
package com.akon405.www;
public class RadixSort {
public RadixSort(i ...
2012/3/31----计数排序
- 博客分类:
- 算法
计数排序的核心思想是:对需要排序的数组A,计算出A中各个元素在排序后的数组B中的位置,然后在把A中的数值存放到B中相应的位置。
这里最重要的步骤就是对A中每一个元素进行计算,算出这个元素所在的位置。
下面就是详细代码:
/*
* 计数排序算法的java实现
* @version 1.0 2012/3/31
* @author akon
*/
package com.akon405.www;
public class CountingSort {
public CountingSort(int[] A,int lenght,int largest){
...
冒泡排序的核心思想:把数组中的相邻两个数进行比较,然后把较大的数向后移,一直到最后的一个数是整个数组中最大的数。再把前面的过程循环,就可以完成排序。
package com.akon405.www;
public class BubbleSort {
public BubbleSort(int[] A){
int i,j;
for(i=0;i<A.length;i++){
for(j=0;j<A.length-i-1;j++){
if(A[j+1]<A[j]){
int temp;
temp=A[j];
...
前面用到了分治算法所演变出来的一种排序---归并排序。这里,我们介绍另一种分治算法演变出来的排序算法---快速排序。
快速排序通过选取数组中的关键字,把一个A[n]数组划分为3部分:A[key]=关键字,A[0...key-1]={比关键字小的元素},A[key+1...n-1]={比关键字大的元素}。然后递归调用这个过程便可实现对数组的排序。
/*
*分治算法引申出来的又一种排序算法---快速排序算法
*version 1.0 2012、3、29
*author akon
*/
package com.akon405.www;
public class Quic ...
2012/3/28----堆排序
- 博客分类:
- 算法
堆排序是一种基于二叉树的排序,利用二叉树的性质进行排序的算法。但是这里的二叉树并不是真实存在的,是我们利用数组的编号进行设计的特殊的二叉树。
而堆排序其本质是一个就地排序算法。
/*
* 堆排序算法
* @versi ...
通过使用分治算法的思想来对数组进行排序(这里叫做归并排序),分治算法的核心思想就是把一个问题分解n个小问题,然后把这n个小问题分别解决,最后再把这n个小问题的结果合并便可以得到结果了。(分解--解决--合并)/*
* 分治算法对数组的排序的java实现(归并排序)
* version 1.0 2012/3/27
* @author akon
*/
package com.akon405.www;
public class MergeSort {
public void merge(int[] A,int left,int mid,int right){
int ...
2012/3/26----插入排序
- 博客分类:
- 算法
从今天开始系统的学习算法,争取每天用java实现一个算法,然后在发表在iteye。既可以记录自己的学习轨迹,也便于有兴趣的朋友一起来讨论学习。ps:本人还是java新手,欢迎各种讨论学习。
<br>
今天先来一个简单的排序算法:插入排序
/*
* 插入排序算法的java实现
* version 1.0 2012/3/26
* @author akon
*/
package com.akon405.www;
public class InsertSort {
private int[] A={2,12,32,43,13,45,1,8,23,47,89,90};
...