(SequenceList* P_SL); //删除头部结点 void deleteSLHead(SequenceList* P_SL); //删除尾部结点 void deleteSLTail(SequenceList* P_SL); //指定位置删除结点 void deleteSLIndex(SequenceList* P_SL); //查找顺序表中的元素 void findSLData(SequenceList* P_SL); //冒泡排序 void bubbleSortSLData(...
printf("1.直接插入排序/n"); printf("2.SHELL排序/n"); printf("3.冒泡排序/n"); printf("4.快速排序/n"); printf("5.简单选择排序/n"); printf("6.堆排序/n"); printf("0.退出/n"); printf("---/n"); printf("请选择:"); scanf("%d",&k); switch(k) { case 1: Directsort(L...
j=1时,9>1,交换,最终得到最小值1放置在第一的位置。事实上,在不断循环的过程中,除了将关键字1放到第一的位置,我们还将关键字2从第九位置提到了第三位置,显然这一算法比之前的要有进步,在上十万条数据的排序过程中,这种差异会体现出来。图中较小的数字如同气泡般慢慢浮到上面,因此就将此算法命名为冒泡算法...
冒泡排序基本概念: 依次比较相邻的两个数,将小数放在前面,大数放在后面。 1#include <stdio.h>2#include <stdlib.h>3#include 45#defineMAXSIZE 467typedefstruct{8intr[MAXSIZE];9intlength;//用于记录顺序表的长度10}SqList;1112voidswap(SqList *L,inti,intj)13{14inttemp = L->r[i];15L->r[i] ...
3.2、栈的基本运算 3.3、顺序栈的类型定义 3.4、链式栈的类型定义 3.5、队列 3.5.1、队列的常用运算 3.5.2、顺序队列类型定义 3.5.3、链队列类型定义 四、二叉树 五、查找方法 5.1、顺序查找 5.2、折半查找 六、排序方法 6.1、冒泡排序 6.2、选择排序 6.3、插入排序法 七、综合应用 -- 反转链表 ...
void BubbleSort(int L[]) { // 对顺序表L作冒泡排序 int i,j,fini = 0;for (i = 1; i < n && !fini; i++) { fini = 1;for (j = 1; j <= n-i; j++)if (L[j] > L[j+1]) { L[0] = L[j];L[j] = L[j+1];L[j+1] = L[0];fini = 0;} } } ...
*冒泡排序 和 插入排序 *注意合并之后的顺序表长度 *// #include<stdio.h> #include<stdlib.h> #include #define maxsize 10 #define max 50 typedef struct sqlist { int *data; int length; }Sqlist; Sqlist initTable(){ Sqlist t; t.data=(...
1、直接插入排序(direct Insert Sort),基本思想是:顺序地将待排序的记录按其关键码的大小插入到已排序的记录子序列的适当位置。子序列的记录个数从1 开始逐渐增大,当子序列的记录个数与顺序表中的记录个数相同时排序完毕。 public void InsertSort(SeqList<int> sqList) { ... ...
一、线性表 1. 逆转顺序表中的所有元素 算法思想:第一个元素和最后一个元素对调,第二个元素和倒数第二个元素对调,……,依此类推。 void Reverse(int A[], int n) { int i, t; for (i=0; i < n/2; i++) { t = A[i]; A[i] = A[n-i-1]; ...