21xrx.com
2024-12-22 23:00:53 Sunday
登录
文章检索 我的文章 写文章
C++排序算法实现代码
2023-06-26 18:43:17 深夜i     --     --
C++ 排序算法 实现 代码

排序算法是计算机领域中基础而重要的内容,它可以帮助我们快速地对大量数据进行排序。而C++作为一个高效的编程语言,也提供了多种排序算法的实现代码。下面我们就一起来看看这些实现代码吧。

1. 冒泡排序(Bubble Sort)

冒泡排序是最基础的排序算法之一,它的原理是比较相邻的两个元素,如果它们的顺序不对就交换它们。这个过程一遍遍地重复,直到所有元素都有序。

实现代码如下:

void bubbleSort(int arr[], int n){

  for(int i=0;i

   for(int j=0;j

     if(arr[j]>arr[j+1]){

      int temp=arr[j];

      arr[j]=arr[j+1];

      arr[j+1]=temp;

     }

   }

  }

}

2. 快速排序(Quick Sort)

快速排序是一种高效的排序算法,它的核心思想是通过不断分治和递归的方式将原始数组划分为两个子数组,其中一个子数组的所有元素都比另一个子数组的所有元素要小或相等,然后对这两个子数组分别再进行快速排序,直到最后整个数组都有序。

实现代码如下:

void quickSort(int arr[], int left, int right){

  if(left>=right)

   return;

  int i=left;

  int j=right;

  int key=arr[left];

  while(i

   while(i =key){

     j--;

   }

   arr[i]=arr[j];

   while(i <=key){

     i++;

   }

   arr[j]=arr[i];

  }

  arr[i]=key;

  quickSort(arr,left,i-1);

  quickSort(arr,i+1,right);

}

3. 堆排序(Heap Sort)

堆排序是一种基于二叉堆数据结构的排序算法,它分为两个步骤:建立堆和排序。首先建立一个初始堆,然后将根节点和最后一个叶子节点交换位置,再重新调整堆,重复这个过程直到整个数组有序。

实现代码如下:

void heapify(int arr[],int i,int n){

  int largest=i;

  int l=2*i+1;

  int r=2*i+2;

  if(l arr[largest]){

   largest=l;

  }

  if(r arr[largest]){

   largest=r;

  }

  if(largest!=i){

   int temp=arr[i];

   arr[i]=arr[largest];

   arr[largest]=temp;

   heapify(arr,largest,n);

  }

}

void heapSort(int arr[],int n){

  for(int i=n/2-1;i>=0;i--){

   heapify(arr,i,n);

  }

  for(int i=n-1;i>=0;i--){

   int temp=arr[0];

   arr[0]=arr[i];

   arr[i]=temp;

   heapify(arr,0,i);

  }

}

以上就是C++实现排序算法的代码,它们在不同的场景下都有着不同的应用。在实际应用中,选择合适的算法可以有效提高程序的执行效率。希望可以通过这篇文章对C++排序算法有一个更深一步的了解。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复