基本排序算法学习1

前段时间回顾了下基本的排序算法,然后根据算法描述用java语言来实现了几个简单的算法,下面总结一下:
基本排序算法:
首先先介绍几种简单的排序算法
1.冒泡排序
冒泡排序法,如名字所述,每次找出最大(最小)的数,像泡泡一样往上冒,直到最后一个数,这样就能排序完成。
如果有n个数,那么需要进行循环的次数便为n*(n+1)/2,时间复杂度为o(n^2).
下面是简要代码:
public static void sortAsc( int [] tem) {
int i = 0 ;
int j = 0 ;
int t = 0 ;
for (i = tem. length ; i > 0 ; i--) {
for (j = 0 ; j < i - 1 ; j++) {
if (tem[j] > tem[j + 1 ]) {
t = tem[j + 1 ];
tem[j + 1 ] = tem[j];
tem[j] = t;
}
}
for ( int k : tem) {
System. out .print(k + " " );
}
System. out .println( "" );
}
}
2.选择排序法:
选择排序,从第一个数开始,每次选择剩下的数中最大(小)的数进行交互位置,直到最后一个数。
如果有n个数,那么需要进行交互位置的次数便为n*(n+1)/2,时间复杂度为o(n^2).
下面是简要代码:
public static void sortAsc( int [] tem){
int i = 0 ;
int j= 0 ;
int temindex = 0 ;
int t= 0 ;
for (i= 0 ;i<tem. length ;i++){
temindex =i;
for (j = i+ 1 ; j <tem. length ; j++) {
if (tem[j]<tem[temindex]){
temindex=j;
}
}
t= tem[i];
tem[i] = tem[temindex];
tem[temindex] = t;
for ( int k : tem) {
System. out .print(k + " " );
}
System. out .println( "" );
}
}
3.插入排序
插入排序,在第二个数后,在已排好序中的数列中查找应该要插入的位置,然后进行位置挪移,不断形成新的有序数列直到最后一个数。
如果有n个数,则需要进行排序的次数便为n*n/2,时间复杂度为o(n^2)
简要代码如下:

public static void sortAsc( int [] tem){
int i;
int j;
int t;
for ( i = 0 ; i <tem. length - 1 ; i++) {
t = tem[i+ 1 ];
for (j = i; j >= 0 ; j--) {
if (t>tem[j]){
break ;
}
tem[j+ 1 ]=tem[j];
}
tem[j+ 1 ] = t;
for ( int k : tem) {
System. out .print(k + " " );
}
System. out .println( "" );
}
}

 最后总结一下,这三种排序算法思路都比较简单,因此时间复杂度其实算比较高的,在性能要求比较高的场景中应用并不算特别多。但是入门非常容易。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值