希尔排序等,还有交换排序,交换排序有冒泡排序、快速排序,还有选择排序,有直接选择排序、归并排序等等…而且还不断的有新的排序方法产生…不知道你要哪一种…新手一般用选择排序和冒泡排序,方法简单,两重循环。
成都创新互联公司是一家从事企业网站建设、网站建设、网站设计、行业门户网站建设、网页设计制作的专业网站建设公司,拥有经验丰富的网站建设工程师和网页设计人员,具备各种规模与类型网站建设的实力,在网站建设领域树立了自己独特的设计风格。自公司成立以来曾独立设计制作的站点上千余家。
先在原链表中以第一个节点为一个有序链表,其余节点为待定节点。从图12链表中取节点,到图11链表中定位插入。上面图示虽说画了两条链表,其实只有一条链表。
while(p) /* 没到表尾 */ { i++;p=p-next;} return i;} Status GetElem(LinkList L,int i,ElemType *e) /* 算法8 */ { /* L为带头结点的单链表的头指针。
你的sort1,sort2未作NULL判定就直接用sort1 - next,sort2 - next;来赋值,这是很危险的。
然后调用上面处理排序的函数,函数的输入就是刚才输入的数,最后在把排序的结果输出即可:最后编译运行,输入10个数,最后控制台输出了排序的结果,证明程序的逻辑是没有问题的。
NULL 新链表:1---2---3---4---NULL 或者建一个二叉树,类似于bst的结构(左子根右子),再中序遍历一下。
对链表从头到尾执行一遍,就可以使无序链表变为有序链表。
定义一个结构体,结构体包括学生的姓名,学号,英语,数学,语文,平均成绩,每个结构体作为顺序链表的节点,对链表进行排序,排序算法可以用冒泡排序法,根据节点中的英语成绩进行排序,冒泡排序是要定义一个临时变量的。