目录
1.冒泡排序
(1)思路
(2)代码
#include<stdio.h>
int main()
{
int temp = 0;
int arr[15] = { 9,4,7,3,2,1,0,5,6,8,-99,-1,5,888,77 };
//第一层循环,控制趟数
for (int i = 0; i < 15; i++)
{
//第二层循环,控制次数
for (int j = 0; j < 15-1; j++)
{
if (arr[j] > arr[j + 1])
{
//{
// arr[j] = arr[j] ^ arr[j + 1];
// arr[j+1] = arr[j] ^ arr[j + 1]; 第一种方法异或
// arr[j] = arr[j] ^ arr[j + 1];
//arr[j] = arr[j] + arr[j + 1];
//arr[j + 1] = arr[j] - arr[j + 1]; 第二种方法加减
//arr[j] = arr[j] + arr[j + 1];
temp = arr[j];
arr[j] = arr[j + 1]; 第三种方法变量
arr[j + 1] = temp;
}
}
}
for (int i = 0; i < 15; i++)
{
printf("%-2d ", arr[i]); //打印
}
return 0;
}
(3)冒泡排序代码实现
2.选择排序
(1)思路
(2)代码
#include<stdio.h>
int main()
{
int maxIndex = 0;
int temp = 0;
int arr[10] = { 6,4,8,3,2,9,0,1,5,7 };
for (int i = 9; i > 0; i--)
{
maxIndex = 0;
for (int j = 0; j <=i; j++)
{
if (arr[maxIndex] < arr[j])
{
maxIndex = j;
}
}
if (maxIndex != i)
{
temp = arr[maxIndex];
arr[maxIndex] = arr[i];
arr[i] = temp;
}
}
for (size_t i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
(3)代码实现
3.插入排序
(1)思路
(2)代码
#include<stdio.h>
int main()
{
//定义一个未序一维数组
int arr[10] = { 8,5,1,0,3,2,7,6,4,-1 };
//插入排序
int temp = 0;
//外层循环:进行9次
for (int i = 1; i < 10; i++)
{
//内层循环:arr[i]
for (int j = i - 1; j >= 0; j--)
{
if (arr[j + 1] < arr[j])
{
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
else
{
break;
}
}
}
for (int i = 0; i < 10; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
(3)代码实现
今天的分享就到这里啦!~
都是在认真的分析和解题,希望分享的知识能够得到你的认可,学会了就点个赞吧!~
我是Try_harder,正在磕磕绊绊中成长~~