链表的插入排序
来源:互联网 发布:coc女王升级数据 编辑:程序博客网 时间:2024/04/28 09:50
一直都不知道怎么写链表的插入排序,之后在网上找了一个例子。理解了之后复制了过来。希望大家共同进步吧。
#include "stdafx.h"#include <iostream>#include<stdio.h>using namespace std;#define MAX 8struct student {int num;student *next;};int* inserSort(int a[], int len);student* CreateList();student *InsertSort1(student *head);student *InsertSort(student *head);void sortlist(student * head);int main(void){student *pHead = CreateList();InsertSort(pHead);return 0;}//从大到小 (主要理解2处亮点)student *InsertSort1(student *head){student *pFirst = head->next;head->next = NULL;//亮点1student *p = NULL;student *q = NULL;student *t = NULL;while(pFirst != NULL){for(t = pFirst,q = head; (q != NULL && t->num < q->num); p = q, q++);//亮点2pFirst = pFirst->next;if(p == head){head = t;}else{p->next =t;}t->next = p;}return head;}student* CreateList(){student *pHead = NULL;student *pData = NULL;FILE *file = fopen("user.txt", "r");while(1){student d;if(fscanf(file,"%d",&d.num) == -1) break;student *pTemp = new student;pTemp->num = d.num;pTemp->next = NULL;if(pHead == NULL){pHead = pTemp;pData = pTemp;}else{pData->next = pTemp;pData = pTemp;}}return pHead;}int* inserSort(int a[], int len){int key;int j;for(int i=1; i<len; i++){key = a[i];for(j = i; j >0 && a[j-1] > key; j--){a[j] = a[j-1];}a[j]= key;}return a;}
0 0
- 链表的插入排序
- 链表的插入排序
- 链表的插入排序
- 链表的插入排序
- 链表的插入排序
- 链表的插入排序
- 链表的插入排序
- 链表的插入排序
- 链表的插入排序
- 排序3:插入排序(普通插入排序 + 折半插入排序 + 链表插入排序 + 希尔排序)
- 链表插入排序
- 链表插入排序
- 链表插入排序
- 链表插入排序
- 链表插入排序
- 链表插入排序
- 链表插入排序
- 链表插入排序
- Win7下设置DirectShow编译环境小结(特别的x64位环境)
- 多维数组
- CSS实现垂直居中的常用方法
- 猜数字
- 网页页面自动刷新的3中实现方式
- 链表的插入排序
- 倒排文件索引(Inverted File Index)
- NIIT实训 java笔记--3.11
- 机器学习:半监督学习
- Java开发编程基础-2
- ContextLoaderListener在Spring中的作用
- Android Studio 打包及引用 aar
- LeetCode – 3Sum — 题解
- 修复bootstrap daterangepicker不能清空日期的问题