三种简单数组排序n^2(C语言)-创新互联
文章目录
本文名称:三种简单数组排序n^2(C语言)-创新互联
本文地址:http://azwzsj.com/article/jsojg.html
- SelectionSort
- BubbleSort
- InsertionSort
- 选择排序
算法:依次比较(仅仅只是比较),找出最小数,按从小到大的顺序排列
代码:
#define SIZE 10
int arr[SIZE] = {1, 4, 3, 5, 2, 7, 8, 6, 9, 0};
int i;
int j;
for (i = 0; i< SIZE - 1; i++)
{int iMin = i;
for (j = i + 1; j< SIZE; j++)
{ if (arr[iMin] >arr[j]) { iMin = j;
}
}
int temp = arr[i];
arr[i] = arr[iMin];
arr[iMin] = temp;
}
BubbleSort- 冒泡排序
算法:依次比较,并在每次的比较后对两个数排序(比如有数组 arr[4] = {2, 1, 4, 3, 8, 0}先对2 1比较,交换后为1,2;再对4 3比较,结果为3,4;同理 0,8.第一轮结束后,arr[4] 为 1,2,3,4,0,8 如此反复比较直至得到最终结果)
代码
#define SIZE 10
int arr[SIZE] = {1, 4, 3, 5, 2, 7, 8, 6, 9, 0};
int i, j;
for (i = 0; i< SIZE -1; i++)
{for (j = i + 1; j< SIZE; j++)
{ if (arr[i] >arr[j]) { int temp = arr[i] ;
arr[i] = arr[j];
arr[j] = temp;
}
}
InsertionSort- 插入排序
算法:同bubble,唯一区别:(以214380中第三次比较为例)交换08后(1 2 3 4 0 8),将0与4比较,交换04(1 2 3 0 4 8);再将0 与3 比较交换(1 2 0 3 4 8)… 直至(0 1 2 3 4 8)简而言之:一步到位的冒泡
代码:
#define SIZE 10
int arr[SIZE] = {1, 4, 3, 5, 2, 7, 8, 6, 9, 0};
int i, j;
for (i = 0; i< SIZE -1; i++)
{for (j = i + 1; j< SIZE; j++)
{ if (arr[i] >arr[j]) { int temp = arr[i] ;
arr[i] = arr[j];
arr[j] = temp;
}
while(i - 1 >= 0 && arr[i]< arr[i - 1])
{ int temp = arr[i];
arr[i] = arr[i - 1];
arr[i - 1] = temp;
}
}
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文名称:三种简单数组排序n^2(C语言)-创新互联
本文地址:http://azwzsj.com/article/jsojg.html