//冒泡排序
#include<iostream>
#include<algorithm>
using namespace std;
#define SIZE 6
void printdata(int* ,int );
void sort(int array[],int n)
{
int temp;
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n-i-1; j++)
{
if (array[j]>array[j + 1])
{
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
printdata( array, n);
}
void printdata(int array[], int n)
{
for (int i = 0; i < n; i++)
{
cout << array[i] << " ";
}
}
int main()
{
int array[SIZE] = { 1, 8, 6, 9, 7, 5 };
sort(array, SIZE);
system("pause");
}
//选择排序
#include<iostream>
const int SIZE = 5;
using namespace std;
void printdata(int*, int);
void sort(int array[], int n)
{
int temp,k;
for (int i = 0; i < n; i++)
{
k = i;
for (int j = i + 1; j < n; j++)
{
if (array[k]<array[j])
{
k = j;
}
}
if (k != i)
{
temp = array[k];
array[k] = array[i];
array[i] = temp;
}
}
printdata(array, n);
}
void printdata(int array[], int n)
{
for (int i = 0; i < n; i++)
{
cout << array[i] << " ";
}
}
int main()
{
int array[SIZE] = { 1, 15, 6, 9, 7 };
sort(array, SIZE);
system("pause");
}
#include<iostream>
const int SIZE = 5;
using namespace std;
//二分查找
void sort(int array[], int n, int data)
{
int high = n;
int low =0;
int mid = (high + low) / 2;
while (low <= high)
{
if (array[mid] == data)
{
cout << "找到,下标为" << mid;
return ;
}
if (array[mid] > data)
{
high = mid - 1;
mid = (high + low) / 2;
}
if (array[mid] < data)
{
low = mid + 1;
mid = (high + low) / 2;
}
if (low > high)
{
cout << "没有找到!" ;
return;
}
}
}
int main()
{
int array[SIZE] = { 1, 3, 6, 7, 9};
int data;
cout << "请输入你要查找的数据:";
cin >> data;
sort(array, SIZE,data);
system("pause");
}
//普通排序
#include<iostream>
#include<algorithm>
using namespace std;
#define size 6
void printdata(int*, int);
void sort(int arry[],int n)
{
int temp;
for (int i = 0; i < n-1; i++)
{
for (int j = i+1; j < n; j++)
{
if (arry[i]<arry[j])
{
temp = arry[i];
arry[i] = arry[j];
arry[j] = temp;
}
}
}
printdata(arry, n);
}
void printdata(int array[], int n)
{
for (int i = 0; i < n; i++)
{
cout << array[i] << " ";
}
}
int main()
{
int array[size] = { 1, 8, 6, 9, 7, 5 };
sort(array, size);
system("pause");
}
#include<iostream>
#include<algorithm>
using namespace std;
const int size = 6;
void printdata(int*, int);
//快速排序 从大到小排序
void sort(int arry[],int left ,int right)
{
if (left >= right)
return;
int low = left;
int high = right;
int key = arry[low];
while (low< high)
{
while (low < high&&arry[high] >= key)
{
high--;
}
arry[low] = arry[high];
while (low < high&&arry[low] <= key)
{
low++;
}
arry[high] = arry[low];
}
arry[low] = key;
sort(arry, left, low - 1);
sort(arry, low + 1, right);
}
void printdata(int array[], int n)
{
for (int i = 0; i < n; i++)
{
cout << array[i] << " ";
}
}
int main()
{
int array[size] = { 10, 8,11, 9, 7, 5 };
sort(array,0, size);
printdata(array, size);
system("pause");
}//有点问题