关于排序的方法 (一 )

数组的排序:这个问题我在c 中 c++ 和 java 中都碰到过。 这种排序的方法有十几种之多, 我在这里将他们做一个小归纳 :

第一种 : 冒泡排序法 :
依次拿一个元素和它后面的元素比较 ,如果它后面的元素比它小则两者交换位置,在用刚刚交换的小的那个元素和它还没有交换的时候的位置的后一个元素比较……..简单来说就是小的数往上冒大的往下沉,所以称之为冒泡排序。
举个例子 : 我们建一个数组 array [ 10 ] ,并用随机数给它赋值(注: array .length 在java中表示数组的长度)。

核心代码:
for( int i = 0; i < array.length ; i++ ){
for( int j = i+1; j < array.length ; j++){
if( array [ i ] > array [j]){
int temp = array [ i ];
array [ i ] = array [ j ];
array [ j ] = temp;



优点: 便于理解,稳定
缺点: 计算效率太低


第二种 插入排序
先将数组的前面按大小顺序排好之后,再将后面的元素一个个的往排好的顺序的中插入

核心程序:
for(int i= 1;i<array.length;i++){
    for(int j = i;j >0;j--){
if(array[j] < array[j-1]){
int temp = array[j];
array[j] = array[j -1];
array[j-1] = temp;
}
}
优点: 计算数组较小时,运算效率非常高;
缺点 :当数组数据很大时, 运算效率低;

第三种 选择排序
选择排序就是将数组中的最小元素通过引脚一一找出来

核心代码:
for ( int i= 0 ; i < array.length ; i ++ ){
int minindex = i ;
for( int j = i + 1; j < array.length ; j ++ ){
if ( array [ minindex ] > array [ j ] ){
minindex = j;
}
}
int temp = array [ i ];
array [ i ] = array [ minindex ];
array [ minindex ] = temp;
}

优点 : 便于理解, 工作效率较冒泡程序高
缺点 :不稳定

未完待续……
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值