表插入排序 java冒泡排序图解

#include <iostream>
using namespace std;

#define SIZE100//链表容量

typedef struct
{
intrc;//数据项
intnext;//指针
} SLNode;

typedef struct
{
SLNoder[SIZE];//静态数组
intlength;//链表的当前长度
} SLinkList;

void CreateList(SLinkList &SL)
{
int i, p, k;

SL.r[0].rc = INT_MAX;
SL.r[0].next = 1;
SL.r[1].next = 0;
// 以第一个和第0个数据项构成一个循环链表
for(i = 2; i <= SL.length;i++)
{
p =SL.r[0].next;//p是当前SL.r[i]的next域的值
k =0;//k用开保存当前的位置

if(SL.r[i].rc <SL.r[p].rc)
{
//当前的节点比已排好序的所有节点都要小
SL.r[i].next= p;
SL.r[k].next= i;

}
else
{
while(1)
{
intt = SL.r[p].next;
if(SL.r[i].rc>= SL.r[p].rc &&SL.r[i].rc < SL.r[t].rc)
break;
k= p;
p= SL.r[p].next;

}

SL.r[i].next = SL.r[p].next;
SL.r[p].next= i;

}

} // for
}

void Arrage(SLinkList &SL)
{
int p, i, q;
p =SL.r[0].next;//p指示第一个记录的当前位置
for(i = 1; i < SL.length;i++)
{
while( p <i)p =SL.r[p].next;//找到第i个记录,并用p指示其在SL中的当前位置
q =SL.r[p].next;//q指示下一个将要调整的记录
if( p != i)
{
// 交换记录
SLNodetemp;
temp =SL.r[p];
SL.r[p] =SL.r[i];
SL.r[i] =temp;

SL.r[i].next =p;//指向交换前的记录,一边以后的while循环找到该记录
}
p =q;//p指向尚未调整的记录
}
}

void main()
{
SLinkList SL;
int i;
scanf("%d", &SL.length);
for(i = 1; i <= SL.length;i++)
{
scanf("%d",&SL.r[i].rc);
SL.r[i].next =-1;//-1代表不指向任何数据
}
CreateList(SL);
Arrage(SL);
for(i = 0; i <= SL.length;i++)
{
表插入排序 java冒泡排序图解
printf("%d %dn", SL.r[i].rc,SL.r[i].next);
}
}

  

爱华网本文地址 » http://www.413yy.cn/a/25101013/167658.html

更多阅读

C++冒泡排序法 java冒泡排序法

冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。相同元素的前后顺序不会发生变化,冒泡法是一种稳定的排序算法。例如:inta[10]={3,7,2,4,5,8,9,0,6,1};size_tn=sizeof

从小到大排序算法 java从小到大排序

查看文章 10种排序算法总结(冒泡、选择、插入、希尔、归并、快速、堆、拓扑、锦标赛、基数)2011年01月20日星期四 08:24P.M.排序算法有很多,所以在特定情景中使用哪一种算法很重要。为了选择合适的算法,可以按照建议的顺序考虑以下标

选择冒泡排序法比较 c语言冒泡排序法

冒泡排序:它的内层循环保证遍历一次后,集合中最小(大)元素出现在它的正确位置,下一次就是次小(大)元素。该方法在集合分布的各种情况下交换移动的次数基本不变,属于最慢的一种排序。实现是双重循环控制。这种排序法属于过江龙,就是要找到

上市公司网址大全按股票代码顺序排序) java按字典顺序排序

上市公司网址大全(按股票代码顺序排序) [原创 2007-02-25 17:10:18] 字号:大 中 小上市公司(按股票代码顺序排序)600000~600100浦发银行(600000)邯郸钢铁(600001)齐鲁石化(600002)东北高速(600003)白云机场(600004)武钢股份(600005)东风汽车(600006)中

声明:《表插入排序 java冒泡排序图解》为网友渣男分享!如侵犯到您的合法权益请联系我们删除