排序算法的Java实现
时间:2011-05-20 哪热
下面是几种排序的用Java的实现:
冒泡排序
public class BubbleSortDemo
{
/**//*
* 从前到后扫描序列,比较相邻的两个元素大小,若发现逆序则交换位置 ,
* 使最大的达到序列的最后位置。然后再从后到前扫描剩下的序列,如此 。
* 当数列有序后不再继续循环
*/
private void bubbleSort(int[] numlist)
{
int in,out,temp;
boolean flag = false;
//从后到前,从最后一项开始到第二项扫描数列。
for( out=numlist.length-1; out>0;out--)
{
flag = true;
//从第一项到第out项扫描数列
for(in=0; in<out; in++)
{
//当前项大于后项,则交换位置。
if(numlist[in]>numlist[in+1])
{
temp = numlist[in];
numlist[in] = numlist[in+1];
numlist[in+1] = temp;
flag = false;
}
}
if(flag) break;
for(int i=0; i<numlist.length; i++)
System.out.print(numlist[i]+ " ");
System.out.println();
}
}
//输出数列
public void display(int[] numlist)
{
for(int i=0; i<numlist.length; i++)
System.out.print(numlist[i]+ " ");
System.out.println();
}
public static void main(String[] args)
{
BubbleSortDemo sort = new BubbleSortDemo();
int num[] = {4,11,17,6,1,2,13,15};
System.out.println("原序是:");
sort.display(num);
System.out.println("每次冒泡排序后是:");
sort.bubbleSort(num);
}
}
排序算法的Java实现(2)
时间:2011-05-20 哪热
插入排序
public class InsertSortDemo
{
private void insertSort(int[] numlist)
{
int in, out,temp;
//从out处分开数列
for(out=1; out<numlist.length; out++)
{
in = out;
temp = numlist[in]; //temp为待排序数据
while(in>0 && temp<numlist[in-1]) //数 列值大于排序值时,
{
numlist[in] = numlist[in-1]; //数列向右移一位
--in; //指针向左移一位
}
numlist[in] = temp; //插入待排序的数据
}
}
public void display(int[] numlist)
{
for(int i=0; i<numlist.length; i++)
System.out.print(numlist[i]+ " ");
System.out.println();
}
public static void main(String[] args)
{
InsertSortDemo sort = new InsertSortDemo();
int num[] = {4,11,17,6,1,2,13,15};
System.out.print("原序是:");
sort.display(num);
System.out.print("插入排序是:");
sort.insertSort(num);
sort.display(num);
}
}
排序算法的Java实现(3)
时间:2011-05-20 哪热
选择排序
public class SelectSortDemo
{
|