一、冒泡排序
依次比较相邻两个元素,将越小的元素浮动至数列顶端,从而完成数列由小到大重新排序。
代码如下:
#include <stdio.h>
int main(void){
int arr1[] = {5,3,8,4,6};
int len = sizeof(arr1) / sizeof(int);
for (int i = 0; i < len-1; i++)
{
for (int j = 0; j < len-i-1; j++)
{
if (arr1[j] > arr1[j+1])
{
int temp = arr1[j];
arr1[j] = arr1[j+1];
arr1[j+1] = temp;
}
}
}
for (int k = 0; k < len; k++)
{
printf("%d\t",arr1[k]);
//printf("\n");
}
return 0;
}
二、选择排序
首次从待排序列中选出最小元素并交换至序列起始位置,再次从剩余序列元素中选出最小元素交换至已排序元素末尾,以此类推,直至将剩余序列元素从小到大重新排序完毕。
代码如下:
#include <stdio.h>
int main(void){
int arr1[] = {3,44,38,5,47,15,26,46,4,19,50,48,1,3};
int len = sizeof(arr1) / sizeof(int);
int fir = arr1[0];
int k = 0;
int i = 0;
for (int i = 0; i < len; i++)
{
k = i;
for (int j = i+1; j < len; j++)
{
if (arr1[k] > arr1[j])
{
fir = arr1[k];
arr1[k] = arr1[j];
arr1[j] = fir;
}
}
}
for (int m = 0; m < len; m++)
{
printf("%d\t",arr1[m]);
}
printf("\n");
return 0;
}