链表排序

本文介绍了链表排序的两种方法:直接插入排序和快速排序。在直接插入排序中,通过比较和交换结点来实现链表的排序;而在快速排序中,针对链表的特点调整了算法,通过一趟遍历找到较小元素并交换,最后将支点插入到合适位置。
摘要由CSDN通过智能技术生成

链表定义及主函数

1、list.h文件

1、	#ifndef _LIST_H_  
2、	#define _LIST_H_  
3、	  
4、	struct ListNode  
5、	{  
6、	    int val;  
7、	    ListNode* next;  
8、	};  
9、	  
10、#endif 

2、main.cpp(省去链表排序代码)

1.	#include <iostream>  
2.	  
3.	using namespace std;  
4.	  
5.	#include "List.h"  
6.	  
7.	void InsertionSortList();  
8.	void SelectSortList();  
9.	  
10.	//构建链表头结点  
11.	ListNode* head = new ListNode;  
12.	  
13.	int main()  
14.	{  
15.	    head->next = NULL;  
16.	      
17.	    //对链表赋值  
18.	    for (int i = 0; i < 10; ++i)  
19.	    {  
20.	          
21.	        ListNode* p = new ListNode;  
22.	        cin >> p->val;  
23.	        p->next = head->next;  
24.	        head->next = p;  
25.	          
26.	    }  
27.	  
28.	    //这里填写链表排序函数,如下:
29.	    //In
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值