C语言选择、冒泡、插入排序算法
#include <stdio.h>
#pragma mark 选择排序算法
void xuanze_array(int *array, int len)
{
for (int i = 0; i<len-1; i++) {
for (int j = i+1; j<len; j++) {
if (array[i]<array[j]) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
}
#pragma mark 冒泡排序算法
void maopao_array(int *array, int len)
{
for (int i = 0; i<len-1; i++) {
for (int j = 0; j<len-i-1; j++) {
if (array[j]>array[j+1]) {
// int temp = array[j];
// array[j] = array[j+1];
// array[j+1] = temp;
array[j] = array[j+1]-array[j];
array[j+1] = array[j+1] -array[j];
array[j] = array[j+1]+array[j];
}
}
}
}
#pragma mark 插入排序算法
void insert_array(int *array, int len)
{
for (int i = 1; i<len; i++) {
int temp = array[i];
int j = i-1;
while (temp<array[j]) {
array[j+1] = array[j];
j--;
if (j==-1) {
break;
}
}
array[j+1] = temp;
}
}
#pragma mark 遍历数组
void print_array(int *array, int len)
{
for (int i = 0; i<len; i++)
{
printf("%d\t", array[i]);
}
printf("\n");
}
int main()
{
//定义一个数组
int array[] = {24, 14, 8, 66, 3, 9, 22};
// 数组array的长度
int len = sizeof(array)/sizeof(int);
insert_array(array, len);
// maopao_array(array, len);
// xuanze_array(array, len);
// 输出数组
print_array(array, len);
return 0;
}