c++实现排序算法

排序算法

选择排序

 #include <iostream>
#include <cmath>
using namespace std;     
int main()
{
	int n,i,j,a[2000];
	bool t;
	cin >>n;
	for (i=1;i<=n;i++)
		cin >>a[i];       
	for (i=1;i<n;i++)        
		for (j=i+1;j<=n;j++)
			if (a[i]>a[j])        
				swap(a[i],a[j]);     
 
	for (i=1;i<=n;i++)
		cout <<a[i] <<" ";        
 
	return 0;       
}

冒泡排序

#include<iostream>
using namespace std;
int main() {
	
	int i;
	int arr[8] = { 12,23,8,15,33,24,77,55};//初始化数组
	for (int i = 0; i < 7;i++) {//一共循环10次

		for (int j = 0; j < 7-i; j++) {//执行的次数依次递减
			if (arr[j]>arr[j + 1]) {
				int temp = arr[j + 1];
				arr[j + 1] = arr[j];
				arr[j] = temp;//交换值
			}
		}
	}
		
		
	
	for (int j = 0; j < 8; j++)//打印数组
	{
		cout << arr[j] <<" ";
	}
	system("pause");
	return 0;
}

插入排序

#include<iostream>
using namespace std;
int main() {
	
	int i;
	int arr[10] ;//初始化数组
	
	for (i = 0; i < 8; i++)
	{
		cin >> arr[i];//输入10要排序的数
	}

	for (int i = 1; i < 8;i++) {//10个数循环9次

		for (int j = i; j >0; j--) {//从第二个数开始与第一个数比较,小的插入到前面
			if (arr[j-1]>arr[j]) {
				int temp = arr[j-1];
				arr[j-1] = arr[j];
				arr[j] = temp;//插到前面来(交换值)
			}
		}
	}
		
		
	
	for (int j = 0; j < 8; j++)//打印数组
	{
		cout << arr[j] << " ";
	}
	return 0;
}

快速排序

#include<iostream>
using namespace std;
void quickSort(int a[], int, int);//原型声明
int main()
{
	int array[] = { 12,23,8,15,33,24,77,55},k;
	int len = sizeof(array) / sizeof(int);//数组长度
//cout << len << endl;
	for ( k = 0; k<len; k++)
		cout << array[k] << " ";
	cout << endl;

	quickSort(array, 0, len - 1);
	for (k = 0; k<len; k++)
		cout << array[k] << " ";//打印数组
	cout << endl;
	return 0;
}

void quickSort(int s[], int l, int r)
{
	if (l< r)
	{
		int i = l, j = r, x = s[l];
		while (i < j)
		{
			while (i < j && s[j] >= x) // 从右向左找第一个小于x的数
				j--;
			if (i < j)
				s[i++] = s[j];
			while (i < j && s[i]< x) // 从左向右找第一个大于等于x的数
				i++;
			if (i < j)
				s[j--] = s[i];
		}
		s[i] = x;
		quickSort(s, l, i - 1); // 递归调用
		quickSort(s, i + 1, r);
	}
}

posted @ 2023-11-04 23:00  Raymongillichmks  阅读(14)  评论(0编辑  收藏  举报