内部排序:冒泡排序算法
来源:互联网 发布:淘宝店一件代销赚钱吗 编辑:程序博客网 时间:2024/06/06 08:32
冒泡排序的思想很简单,如果要求排序后序列中元素按照从小到大的顺序排列,则冒泡排序的步骤如下:
1、依次比较序列中相邻的两个元素,将较大的放在后面,这样一趟比较后,最大的元素就放在了最后的一个位置;
2、再依次比较相邻的两个元素,将第二大的元素最终放到倒数第二个位置;
3、依次循环,直到最小的元素放在了第一个位置,排序完成。
根据以上思想,代码如下:
//排序结果是由小到大void Bubble_Sort(int *arr,int len) { int i,j,exchange; for(i=0; i<len-1; i++) { //i记录排序趟次,也即排好序个数 for(j=0; j<len-i-1; j++) { if(arr[j] > arr[j+1]) { exchange = arr[j]; arr[j] = arr[j+1]; arr[j+1] = exchange; }} } }
根据以上的思想,实现以下题目:
请定义一个单链表,并用冒泡法对其进行排序。
//单链表的定义typedef struct _node { int data; struct _node * next;} //使用子函数 相邻数据交换。void swap_nodedata(node *pl,node *p2) { int temp = p1->data; p1->data = p2->data; p2->data = temp}node * bubble_sort(node *head) { node *p; int n,temp; n = length(head);//计算链表长度 if(head==NULL || head->next==NUll) { return head; } p = head; for(int i=1; i<n; ++i) { p = head; //每一趟排序都是从链表的首部开始 for(int j=1; j<n-i; ++j) { if(p->data > p->next->data) { swap_nodedata(p,p->next); } p = p->next;//p指向当前操作的链表。 } }}
0 0
- [算法 内部排序]冒泡排序
- 内部排序:冒泡排序算法
- 内部排序算法:冒泡排序
- 内部排序之冒泡算法
- 内部排序算法之冒泡排序
- 内部排序算法之一【冒泡排序】
- 内部排序算法之冒泡排序
- 内部交换排序---冒泡排序
- 内部排序—冒泡排序
- 内部排序之冒泡排序
- 排序算法--冒泡排序
- 排序算法-冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 排序算法-冒泡排序
- 排序算法 冒泡排序
- 排序算法-- 冒泡排序
- 排序算法-冒泡排序
- 关键地址迁移for L138
- demo1
- 蓝桥杯 最大数 递归 填空题 Java
- 由12306.cn谈谈网站性能技术
- 性能调优攻略
- 内部排序:冒泡排序算法
- 浅谈Android应用性能之启动时间
- cocos2d-x 2.2 android环境搭建
- 第二周项目2-有序的结构体数组
- NYOJ 298 点的变换
- 设置recv的超时
- CheckBox ExpandableListView
- 立体匹配十大概念综述
- android线程