`
Mr.Zhong
  • 浏览: 11310 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

如何在原链表上进行排序

阅读更多

如何在原链表上进行排序?
(链表中已经实现插入和删除操作)
1、使用双重循环实现冒泡排序,外层循环次数为元素个数,内层循环由0号位到结束,并且在每次外层循环结束后内层循环起始点加1。
2、内层循环比较取出当前所剩元素中的最小值,然后或获取最小值所在链表中的位置索引。
3、在外层循环中,通过内层循环得出的最小值索引取得该位置的节点,把该节点插入到链表的指定位置(开始为0,在每次外层循环后递增一,实现从小到大排序)。
4、插入完成后,把最小值索引值加一(因为前面插入新节点,长度增一),然后删除该节点。
5、依次循环,直到结束。


变量说明:
int a:内层循环获得的最小值所在位置的索引
int c=0:当前获取的最小节点的插入位置索引
i:外层循环计数
int b=0 :内层循环的起始点

 for(int i =1;i <= this.getLength();i++){
   获取a处的节点;
   获取的节点在c处插入;
   删除a+1处节点;
   b++;
   c++;
       for(int j=b;i<=this.getLength()-1;i++){
   获得最小值处的位置a;
  }  
 }

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics