黑马程序员技术交流社区
标题:
数组的排序问题
[打印本页]
作者:
张俊飞
时间:
2013-12-19 16:49
标题:
数组的排序问题
我自己写了两种,谁还有其他的排序方法,希望分享一下
。选择排序
选择排序是给每个位置选择当前元素最小的,比如给第一个位置选择最小的,在剩余元 素里面给第二个元素选择第二小的,依次类推,直到第n-1个元素,第n个元素不用 选择了,因为只剩下它一个最大的元素了。
public static void test1(int[] arr)
{
for(int i = 0;i<arr.length-1;i++)
{
for(int j = i+1;j< arr.length;j++)
{
if(arr[i]>arr[j])
{
int tem;
tem = arr[i];
arr[i] = arr[j];
arr[j] = tem;
}
}
}
for(int x:arr)
{
System.out.print(x+" ");
}
}
。冒泡排序
冒泡排序,原理用相邻的两个数比较,得出最值,一次对比得出最 值保存在队末
public static void test2(int[] arr)
{
for(int i = 0;i<arr.length-1;i++)
{
for(int j = 1;j<arr.length-i;j++)
{
if(arr[j-1]>arr[j])
{
int tem;
tem = arr[j-1];
arr[j-1] = arr[j];
arr[j] = tem;
}
}
}
for(int x:arr)
{
System.out.print(x+" ");
}
}
作者:
张利星
时间:
2013-12-19 17:27
快速排序法:主要是运用了Arrays工具类中的一个方法Arrays.sort()实现。
public class Test3 {
public static void main(String[] args) {
int[] a = {53,41,2,34,19,25,41};
System.out.println("排序前--------------");
//打印排序前的数组
for(int i : a) {
System.out.print(i + " ");
}
Arrays.sort(a); //调用方法进行排序
System.out.println("\n排序后--------------");
//打印排序后的数组
for(int i : a) {
System.out.print(i + " ");
}
}
}
复制代码
插入排序法:是在已排好序的子数列中反复插入一个新元素,通过不断的插入比较来对数列值进行排序的。
public class InsertionSort {
public static void main(String[] args) {
int[] arr = {14,23,76,44,69,35,23,57};
System.out.println("排序前-------------------------");
sopArray(arr);
insertSort(arr);
System.out.println("\n排序后-------------------------");
sopArray(arr);
}
public static int[] insertSort(int[] args){//插入排序算法
for(int i=1;i<args.length;i++){
for(int j=i;j>0;j--){
if (args[j]<args[j-1]){
int temp=args[j-1];
args[j-1]=args[j];
args[j]=temp;
}else break;
}
}
return args;
}
//打印输出数组
public static void sopArray(int[] arr) {
for(int i : arr) {
System.out.print(i + " ");
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2