数据结构冒泡排序算法的代码
时间: 2023-07-25 10:46:28 浏览: 51
好的,以下是冒泡排序算法的代码(C++实现):
```
void bubbleSort(int arr[], int n){
for (int i = 0; i < n - 1; i++){
for (int j = 0; j < n - i - 1; j++){
if (arr[j] > arr[j + 1]){
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
```
其中,`arr`是待排序的数组,`n`是数组的长度。外层循环控制排序的轮数,内层循环控制每一轮比较的次数。如果相邻两个元素的顺序不正确,就交换它们的位置,直到一轮比较结束。重复进行多轮比较,直到整个数组都有序。
相关问题
冒泡排序算法c源代码数据结构
以下是冒泡排序算法的C语言代码实现:
```c
#include <stdio.h>
void bubble_sort(int arr[], int size) {
int i, j;
for (i = 0; i < size - 1; i++) {
for (j = 0; j < size - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int arr[] = {5, 2, 8, 3, 1, 6};
int size = sizeof(arr) / sizeof(arr[0]);
printf("Before sorting:\n");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
bubble_sort(arr, size);
printf("After sorting:\n");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
冒泡排序算法的基本思想是每次从数组的第一个元素开始,比较相邻的两个元素,如果前者大于后者,则交换它们的位置。这样做一轮之后,最大的元素就会被交换到最后一个位置。接着重复上述过程,除了最后一个元素,每次都将未排序的部分中最大的元素移动到最后一个位置。时间复杂度为O(n^2)。
数据结构排序算法代码
对于数据结构的排序算法,有许多种不同的实现。以下是常见的几种排序算法的代码示例:
1. 冒泡排序(Bubble Sort):
```cpp
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
// 交换元素
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
```
2. 插入排序(Insertion Sort):
```cpp
void insertionSort(int arr[], int n) {
for (int i = 1; i < n; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j+1] = arr[j];
j--;
}
arr[j+1] = key;
}
}
```
3. 选择排序(Selection Sort):
```cpp
void selectionSort(int arr[], int n) {
for (int i = 0; i < n-1; i++) {
int minIndex = i;
for (int j = i+1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
// 交换元素
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
```
这些只是排序算法的简单示例,实际应用中可能需要更多的考虑和优化。