音乐代码大全(各类排序代码归纳(经过测试的))

以下排序算法是我自己跟着算法描述(参考别人)写的,直接粘贴到VS里就可以用了,想要理解,还是需要了解各种排序算法的实现原理。

# include & ltiostream & gt

# include & lt算法& gt

使用命名空间std

int acout & lt& ltc[I]& lt;& lt" ";= { 0 };

void show_Result(int *c)

{

for(int I = 0;我& lt10;++i)

{

[10]

}

cout & lt& ltendl

}

void show_Result2(int *c)

{

for(int I = 1;我& lt11;++i)

{

cout & lt& ltc[I]& lt;& lt" ";

}

cout & lt& ltendl

}

/*冒泡排序*/

void maopao(int *a)

{

int temp = 0;

for(int I = 0;我& lt10;i++)

{

for(int j = 0;j & lt10-1-I;j++)

{

if(a[j]& gt;a[j+1])

{

temp = a[j+1];

a[j+1]= a[j];

a[j]= temp;

}

}

}

}

/*/快速排序*/

void Quick_Sort(int first,int last)

{

int base = a[first];

int left = first

int right = last

int temp = 0;

if(left & gt;右)

{

返回;

}

而(左!=右)

{

while(left & lt;右)

{

if(a[right]& lt;基地)

{

打破;

}

-对;

}

while(left & lt;右)

{

if(a[left]& gt;基地)

{

打破;

}

++向左;

}

如果(左!=右)

{

temp = a[left];

a[左]= a[右];

a[right]= temp;

}

}

if (left == right)

{

a[第一]= a[左];

a[左] =基数;

}

//show _ Result(b);

//cout & lt;& ltendl

Quick_Sort(first,left-1);

Quick_Sort(left + 1,last);

}

/*/桶排序*/

void tong_Sort(int *a)

{

int b[10]= { 0 };

for(int I = 0;我& lt10;i++)

{

b[a[I]]++;

}

for(int I = 0;我& lt10;i++)

{

for(int j = b[I];j & gt0;j -)

{

cout & lt& lt我& lt& lt" ";

}

}

cout & lt& ltendl

}

/*/堆叠排序*/

#pragma区域MyRegion

int n = 10//元素的数量

int b[11]= { 0 };

//数据向下调整

void Sift_Down(int i)

{

int temp = 0;//交换值时使用

int flag = 0;//结束向下调整

while(2 * I & lt;= n & amp& ampflag == 0)

{

int last _ sift = I;

if(b[I]& gt;B[2 * i])//与左侧节点比较

{

last _ sift = 2 * I;//记录较小值的节点

}

if(2 * I+1 & lt;= n & amp& ampb[last _ sift]& gt;B[2 * i+1])//和右节点

{

last _ sift = 2 * I+1;//记录较小值的节点

}

如果(last_sift!= i)

{

temp = b[I];

b[I]= b[last _ sift];

b[last _ sift]= temp;

i = last _ sift//如果最小的节点是根节点,则结束数据降级。

}

其他

{

flag = 1;

}

}

}

//数据去堆,把最后一个节点的数据放在最上面。

int deleteMax()

{

int temp = 0;

temp = b[1];

b[1]= b[n];

n-;

sift _ Down(1);

返回温度;

}

void heap_Sort()

{

//建立最小堆

for(int I = n/2;我& gt0;-我)

{

Sift_Down(一);

}

int num = n;

//数据卸堆

for(int I = 1;我& lt= numi++)

{

cout & lt& ltdelete max()& lt;& lt" ";

}

}

#杂注endregion

/*合并排序*/

Void Guibin Garry (int a [],int first,int mid,int last,int temp[])//按顺序组合两个有序序列。

{

int i = first

int j = mid+1;

int n = mid

int m = last

int k = 0;

while(我& lt= n & amp& ampj & lt= m)

{

if(a[I]& lt;a[j])

{

temp[k++]= a[i++];

}

其他

{

temp[k++]= a[j++];

}

}

while(我& lt= n)

{

temp[k++]= a[i++];

}

while(j & lt;= m)

{

temp[k++]= a[j++];

}

for(I = 0;我& ltk;i++)

{

a[first+I]= temp[I];

}

}

Void guiding sort (int a [],int first,int last,int temp[])//先拆分序列。

{

if(first & lt;最后)

{

int mid =(first+last)/2;

guibingSort(a,first,mid,temp);

guibingSort(a,mid + 1,last,temp);

guibingarry(a,first,mid,last,temp);

}

}

void Gui_bingSort(int a[],int n)

{

int * p = new int[n];

guibingSort(a,0,n-1,p);

删除[]p;

}

/*直接插入排序*/

void目录_插入_排序(int qa[],int number)

{

int I = 0;

int j = 0;

int min _ set = 0;

int temp = 0;

for(I = 0;我& lt号码;i++)

{

min _ set = I;//如果扫描不出来,就不要换位置。

for(j = 0;j & lt我;++)//从头开始扫描,比较后记录位置。

{

if(QA[I]& lt;= qa[j])

{

min _ set = j;

temp = QA[I];

打破;

}

}

for(j = I;j & gtmin _ setj -)

{

QA[j]= QA[j-1];

}

if(min_set!=i)

QA[min _ set]= temp;

}

}

/*希尔排序*/

void shell_sort(int a[],int n)

{

int add = 5;//设置步长

int number = n/add;//一次可以排序的数字

while(添加)

{

number = n/add;

for(int j = 0;j & lt添加;j++)

{

int * p = new int[number];

//cout & lt;& lt号码& lt& ltendl

for(int I = 0;我& lt号码;i++)

{

p[I]= a[I * add+j];

}

dir_insert_sort(p,number);

for(int I = 0;我& lt号码;i++)

{

a[I * add+j]= p[I];

}

删除[]p;

}

if (add == 1)

{

打破;

}

add = add-2;

如果(添加& lt1)

{

add = 1;

}

}

}

int()//要排序的数据生成和输出显示

{

for(int I = 0;我& lt10;++i)

{

a[I]= I;

}

for(int I = 1;我& lt11;++i)

{

b[I]= I;

}

cout & lt& lt“猫炮”:& lt& ltendl//冒泡排序

random_shuffle(a,a+9);

show _ Result(a);

猫炮(一);

show _ Result(a);

cout & lt& lt"快速排序:" & lt& ltendl//快速排序

random_shuffle(a,a+9);

show _ Result(a);

Quick_Sort(0,9);

show _ Result(a);

cout & lt& lt" heap _ sort:" & lt;& ltendl//堆排序

random_shuffle(b+1,b+10);

show _ result 2(b);

背景音乐代码

heap_Sort()。

cout & lt& ltendl

cout & lt& lt" tong _ Sort:" & lt;& ltendl//桶排序

random_shuffle(a,a+9);

show _ Result(a);

tong _ Sort(a);

//show _ Result(a);

cout & lt& lt" guibing _ Sort:" & lt;& ltendl//合并排序

random_shuffle(a,a+9);

show _ Result(a);

Gui_bingSort(a,10);

show _ Result(a);

cout & lt& lt" dir _ insert _ sort:" & lt;& ltendl//直接插入排序

random_shuffle(a,a+9);

show _ Result(a);

dir_insert_sort(a,10);

show _ Result(a);

cout & lt& lt" shell _ sort:" & lt;& ltendl//希尔排序

random_shuffle(a,a+9);

show _ Result(a);

shell_sort(a,10);

show _ Result(a);

系统(“暂停”);

返回0;

}

结果:



您可以还会对下面的文章感兴趣

使用微信扫描二维码后

点击右上角发送给好友