排序算法可视化c++代码
时间: 2023-05-16 09:02:43 浏览: 273
各种排序算法的可视化比较_C++_
5星 · 资源好评率100%
排序算法可视化是指将不同排序算法的执行过程可视化出来,以便更好地理解和学习排序算法。在排序算法可视化中,通常使用编程语言编写程序,实现排序算法的操作,并将排序过程可视化出来。
对于C语言编写排序算法可视化程序,可以采用如下代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 生成随机数
void generateRandomNumbers(int *a, int n) {
srand(time(0)); // 设置随机种子
for(int i=0; i<n; i++) {
a[i] = rand() % n; // 随机数取值范围为[0, n)
}
}
// 打印数据
void printNumbers(int *a, int n) {
for(int i=0; i<n; i++) {
printf("%d ", a[i]);
}
printf("\n");
}
// 冒泡排序
void bubbleSort(int *a, int n) {
int temp;
for(int i=0; i<n-1; i++) {
for(int j=0; j<n-i-1; j++) {
if(a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
printNumbers(a, n); // 打印排序过程
}
}
}
}
// 插入排序
void insertionSort(int *a, int n) {
int j, temp;
for(int i=1; i<n; i++) {
temp = a[i];
j = i-1;
while(j>=0 && a[j]>temp) {
a[j+1] = a[j];
j--;
printNumbers(a, n); // 打印排序过程
}
a[j+1] = temp;
}
}
// 选择排序
void selectionSort(int *a, int n) {
int minIndex, temp;
for(int i=0; i<n-1; i++) {
minIndex = i;
for(int j=i+1; j<n; j++) {
if(a[j] < a[minIndex]) {
minIndex = j;
}
}
if(minIndex != i) {
temp = a[i];
a[i] = a[minIndex];
a[minIndex] = temp;
printNumbers(a, n); // 打印排序过程
}
}
}
int main() {
int n = 10;
int a[n];
generateRandomNumbers(a, n); // 生成随机数
bubbleSort(a, n); // 冒泡排序
insertionSort(a, n); // 插入排序
selectionSort(a, n); // 选择排序
return 0;
}
```
以上是一个使用C语言编写的排序算法可视化程序,其中包含冒泡排序、插入排序和选择排序三种排序算法。程序的核心部分是printNumbers函数,它可以将排序过程中每一步的结果输出,从而形成排序算法可视化效果。在生成随机数之后,分别调用三种排序算法进行排序,同时打印出排序过程,以便更好地理解排序算法的执行过程。
阅读全文