算法-排序算法

一.初级排序算法

初级排序算法包括:

        1.选择排序

        2.插入排序

        3.希尔排序

--------------------------------------

1.选择排序-选择排序是排序算法中最为简单的一种

[算法描述]

        首先在数组中找到最小的元素,将其与数组第一个元素交换位置,再在剩余的元素中遍历,查找到最小的元素,将其与数组的第二个元素交换位置,如此往复,直到将整个数组排序;

[复杂度(时间)]

        选择排序用在查找最小元素上的复杂度为n!,最坏的情况是,每次都需要交换,所以用在交换元素上的复杂度为n,最好的情况下,交换复杂度为0,故选择算法的总时间复杂度为:O(n!) + O(n) = O(n!)

[代码-Java]

private static int[] arr_Sort{51,3,9,12,26,2,89, 11,22,1, 40,33 };


public static void main(String[] args)

{ // 程序入口

        arr_Sortsort_Choose(arr_Sort);// 选择排序

        printArr(arr_Sort); // 打印数组

}


/**

* @param 打印数组

*/

private static void printArr(int[] arr)

{

        for (int i =0;iarr.length i++)

        {

                System.out.print(arr[i] +",");

        }

}


/**

* @param arr_temp

* @return 选择排序算法入口

*/

private static int[] sort_Choose(int[] arr_temp)

{

        for (int i =0;iarr_temp.length;i++)

        {

                int min_IndexfindMinIndex(arr_temp,i); // 找到当前最小的元素,获得他的下标

                int temparr_temp[i];

                arr_temp[i] = arr_temp[min_Index];

                arr_temp[min_Index] = temp;

        }

        return arr_temp;

}


/**

* @param arr_temp

*            传入数组

* @param start

*            开始比较的数组元素的下标

* @return 返回数组arr_temp中,下标从start开始的

*/

private static int findMinIndex(int[] arr_temp,int start)

{

        int min_indexstart;

        int countarr_temp.length;

        for (int istart;i <counti++)

        {

                if (arr_temp[i] < arr_temp[min_index])

                {

                        min_index =i;

                }

        }

        return min_index;

}


待续.....

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值